stream: Ignore new chunks once stream is ended

Currently, new chunks are buffered, and possibly forwarded to read() before 'end' is emitted.

Alternatively, an 'error' could be emitted when this occurs, but I chose this solution since it seems weird to error on post end `push(x)`, while allowing multiple `push(null)`.