Use non-blocking read on subprocess stderr

Here's a proposed fix using non-blocking reads to resolve #169.  I'm not sure if this is the cleanest solution as it does add some complexity to the normal subprocess code.  Let me know what you think.
If I'm reading this correctly, this assumes that if we can read the first 8k of the stream, then we can read the rest of the stream without blocking. Is this a safe assumption? If the pipe has 9k of data and we try this, will we still hang?