bug fixes + additional tests/benchmarks

- fix reader behavior when reads extend beyond the end of the stream

- fix writer behavior with large, incompressable data blocks

- test/benchmark different data profiles (text, json,
  random/incompressable, constant/supercompressable)