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.
I'm nervous about only doing a nonblocking read for the first 8 kilobytes; if you can rework this to do nonblocking reads for the entire contents of the pipe I'll accept it.