Benchmarks and fixes

Thanks for writing the package.

I added some additional benchmarks, and expanded the write-then-read test. This exposed some bugs, short reads from the Reader and large blocks emitted by the Writer.
(the old test was insufficient because it read a specific expected number of bytes which never triggered this issue)