stream2: flush extant data on read of ended stream

A ReadableStream with a base64 StringDecoder backed by only
one or two bytes would fail to output its partial data before
ending. This fix adds a check to see if the `read` was triggered
by an internal `flow`, and if so, empties any remaining data.
    
Fixes #7914.
It turns out this is unnecessary/overly defensive -- `fromList(0)` will always return a chunk comprised of the rest of `state.buffer`. Sorry sorry!