the `finished` promise has no way of knowing whether the stream finished cleanly

Since `[[abort]]` calls `[[finish]]` a consumer of a stream cannot differentiate between a stream has ended and has no more data cleanly or it was aborted prematurely.

Maybe the `readableState` should also have an `"aborted"` state instead of a `"finished"` state.

This edit passes a boolean to the `finishedPromise` to let it know whether it was aborted or not.