stream: Empty strings/buffers do not signal EOF any longer
stream: read(0) should not always trigger _read(n,cb)

This is causing the CryptoStreams to get into an awful state when
there is a tight loop calling connection.write(chunk) waiting for
a false return.

Because CryptoStreams use read(0) to cycle data, this was causing
the encrypted side to pull way too much data in from the cleartext
side, since the read(0) would make it always call _read.

The unfortunate side effect, fixed in the next patch, is that
CryptoStreams don't automatically cycle when the Socket drains.
tls: Cycle data when underlying socket drains
bench: Add common script
bench: Move net-pipe into benchmark/net
bench: Add tcp_raw client-to-server bench
bench: net-pipe using common bench
benchmark: Fill out the net benchmarks
bench: Add 'make bench-net'
benchmark: Don't use hard-coded port
benchmark: http benchmarks
benchmark: Make http_simple a bit less chatty
benchmark: Move url bench to benchmark/misc
benchmark: simpler path handling in runner
benchmark: Compare script for tracking regressions
benchmark: compare script filter out r/g results
benchmark: More stuff
bench: Add make bench-fs
bench: misc/startup.js
benchmark: Add bench-array