Add a wrapper that does the calls shutdown on the channel itself,
to actually cause EOF. Add integration test using remote cat.
Move shuffling stdout bytes to background, so run.run returns before
seeing EOF on stdout, and thus actually making the stdin useful.
Similarly, don't wait for EOF on stderr before returning from run.run.
If a caller uses StringIO to capture the output, they
cannot call .getvalue() after the close.
This also lets you collect multiple command outputs
into the same file.