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.
Okay.  I'll work on that update when I get some time.  I will also look into creating some new tests for stderr output.