Implement BitWriter and add unit tests
Implement BitWriter and add unit tests

This implemented a `BitWriter` struct which supports writing bit packed
or byte aligned data to a buffer of fixed size. The struct is paird with
the existing `BitReader`.

Also added unit tests for all added operations of this struct. All of
these tests are "roundtrip" tests which covers both write and read.

sunchao/parquet-rs,sunchao/parquet-rs