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.
Good point.  This wouldn't necessarily work in all cases.  In my testing there was never anything in stderr when the ssh master was running during a git fetch, but that wouldn't always be the case.  I was tempted to make this read much bigger, but I couldn't find a good safe constant to set it to.  I settled on 8k since that was one of the default read sizes in the Ruby io code, but it was somewhat arbitrary.