Refactor queue into some helpers. Fixes #114.

Also unified terminology and changed the method names of strategies. We now talk about "chunks" which have certain "sizes." The queue contains chunks directly for readable streams, but "write records" for writable streams.

Decided not to make them user-facing, as it's pretty complex to create one yourself efficiently.