cas: switch to bufio.Reader to eliminate a read

Using a bufio.Reader we can peak at the header of our input without
consuming the entire thing. Then we can decompress on the fly directly
from the input reader. This allows us to write it into a TeeReader that
both puts it into the store and generates a hash.

This eliminates one full read+decompress from the store.
Merge pull request #264 from jonboulle/cas

cas: switch to bufio.Reader to eliminate a read