CommandResult
Contains the accumulated output for the invocation of a subprocess command.
Apart from the exit code, the primary data-structure is a sequence of byte chunks, tagged with Left for stdout and Right for stderr. This is interleaved roughly in the order it was emitted by the subprocess, and reflects what a user would have see if the subprocess was run manually.
Derived from that, is the aggregate out and err StreamValues,
wrapping stdout/stderr respectively, and providing convenient access to
the aggregate output of each stream, as bytes or strings or lines.