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.
I'm confused as to what this is actually fixing?  Can you explain this edge case?