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.
Yep! But good catch on the `flowing` -- it looks like I can use that flag instead (which is **way** more explicit) to detect the `read()` call.