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.
We really don't have any guarantees about the contents of the pipe, so as long as we can read in a nonblocking manner till EOF 8k is probably as good as any other value We can always optimize later if need be.