benchmark variations which do not use io.Copy interfaces

I cleaned up the benchmarks and added versions that avoid use of the io.Copy interfaces by masking the methods on `*reader` and `*BufferedWriter`.

Aside from the direct goal of adding benchmarks without the io.Copy interfaces and cleaning up the mess I made earlier, I want this to be flexible enough to fit potential future enhancements which provide optional or "sliding scale" optimizations significant enough to warrant distinction. I think the `enc` and `dec` function arguments to `benchmarkEncode` and `benchmarkDecode` respectively should be sufficient for future tasks.

Furthermore, now it's straight forward to add more raw test data to `fixturedata_test.go`. Although I think a future enhancement would be to move the raw data to individual files in a subdirectory. But I digress...