stream: Change expectations for the _read() callback, making it consistent

With this change every time _read(n, cb) is called you are expected to eventually
call the callback before another _read() will be called.

As a new option, you when you omit the callback in your _read() function definition
the Readable will infer a sync callback with empty data right after you
return.