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'll definitely fix that.  Do you think 8k reads make sense?