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.
`read(0)` in this state will still return `null`. It's only the `read()` in [flow](https://github.com/chrisdickinson/node/blob/bugfix/fix-base64-decode/lib/_stream_readable.js#L605) that gives `nOrig === undefined`. Giving it a try now with `state.flowing` instead of `nOrig === undefined`. I may even guard this further by checking for `state.decoder` as well, since that's what allows for the undesired behavior.