Factor out more test helpers into separate files.
Fix typos in pipeThrough reference implementation.
Add a test for piping through a pass-through transform.
Don't exert backpressure after the first push.

Before this commit, BaseReadableStream would immediately exert backpressure (i.e. return `false` from `push`), even if the buffer was empty at the time of being pushed into. After it, backpressure will only be exerted if the buffer is nonempty.

This sets the stage for (I think) solving #24, since before this commit, it was impossible for a BaseReadableStream to ever return `true` from `push`. After it, that is possible, as long as the stream clears its internal buffer as fast as it can.
This should have worked, but didn't. Hrm.
Adding some debugging. The problem is that `push` is returning false here when I want it to return true.