Read chunks instead of lines in NonBlockingStreamReader
Read chunks instead of lines in NonBlockingStreamReader

Using readline can cause an apparent hang if the subprocess is waiting
for user input. The typical scenario is that the subprocess prints a
prompt without a newline and then waits for input; while it's waiting,
the prompt is never printed and the program appears to be hung up.

The problem with reading chunks is that we generally want to print lines
but that requires extra logic when reading chunks. Tradeoffs...

wylee/runcommands,wylee/runcommands