Add read() method to ReadableByteStream

Let's focus on specifics here instead of speculating about unknown underlying sources :). I guess my questions are:

- Given read(2) exposed to JS directly, would the current setup work efficiently for readInto()? (I assume yes.)
- Given read(2) exposed to JS directly, what would the *ideal* behavior for read() be, if we weren't necessarily trying to base it on readInto()?
- Now, let's consider trying to base read() on readInto(), just for author convenience. What deviations from the ideal behavior occur? E.g. the current design in this PR seems to have the disadvantage of: (a) [[readBufferSize]] might be too big (how often will this occur?), causing over-allocation of the ArrayBuffer; (b) the consumer gets a Uint8Array instead of an ArrayBuffer. 

(b) does not worry me very much. (a) is slightly worrying. But mostly I am concerned about what I am missing besides those two.