Simplify StreamCapturer for subprocess testing

Rather than using a transient pipe for each subprocess started, the
StreamCapturer now makes a single pipe, and subprocesses redirect their
output to it.

So long as this works on Windows (I've done brief testing, and os.pipe()
seems to be functional), this will hopefully make this much more robust.
The recent failures in ShiningPanda on IPython.parallel have been caused
by StreamCapturer.
Don't use select() in StreamCapturer

select() on Windows only works with sockets, not regular file
descriptors.
Merge pull request #4456 from takluyver/stream-capturer-simplify

Simplify StreamCapturer for subprocess testing