The bit reader had a weak interface where it relied on the caller to make sure the bit order was Little Endian, and to byte align the reader. The refactored bit reader will make sure the byte order is Little Endian and is able to byte align with the func Align()
.