simple BufferedWriter type

- BufferedWriter writes blocks when flushed or MaxBlockSize bytes
  accumulate.

- Add tests and benchmarks corresponding to Writer's.

- Rewrite existing tests to demonstrate buffering misalignment.
  bytes.Reader/.Buffer types have optimizations which help in io.Copy.
Merge pull request #6 from bmatsuo/bufio

simple BufferedWriter type
note instantiation requirements
avoid unnecessary allocations in snappy.Encode
add LICENSE
Merge pull request #10 from bmatsuo/snappy-go/optimize

avoid unnecessary allocations in snappy.Encode
Reader returns an error if the first block is not streamID

Various `go vet` fixes in tests