Changed stream handling of min_bytes and timeout

read changes
o min_bytes is now always positive
o only returns 0 on eof
o unix streams poll at least once, even for min_bytes = 0

read and write changes
o timeouts can now be negative.  A negative timeout implies falling back
  to the default.  A 0 timeout now means an immediate timeout