Bug17183

Added test that covers bug 19313.
Fix: Avoid reading bytes after base_stream has return less data than it was requested. If the base_stream is NetworkStream, before the fix Read would block until one byte was available to return, now the method will no longer try to Read when no more data is available.