Test that DeflateStream.Read does not try to read empty stream. Covers #19313.
Changed DeflateStream to stop reading base_stream sooner. Fixes #19313.
Avoid reading bytes after base_stream.Read returns 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.