If an external command produces output without newlines, the current
code ends up calling read_nonblock() with a buffer size of zero which
triggers the assertion in readv_nonblock().
Increase the output buffer to 32K and fix the problem by simply
discarding all input if the input buffer is full and contains no
newline character.
A better fix would be to discard everything until the next newline
character is read, but this requires more work, so let's go with this
simple fix for now.