Add bit reading methods to RandomAccessInputStream
Deprecate BitBuffer in favor of RandomAccessInputStream
Update readers and codecs to use RandomAccessInputStream for bit operations
Add bit writing methods to RandomAccessOutputStream
Deprecate BitWriter in favor of RandomAccessOutputStream
RAIS: do not call skipBytes when there are no bytes to skip
Add unit test for reading and writing bits
Use readByte() instead of read() for processing bits
Close the RandomAccessInputStream in a finally block

As the stream is wrapping a byte array, there isn't a file handle
involved; this can't really hurt though.
Use 'if'  instead of 'while' for skipping bytes

currentBit will not be greater than 7, and skipBits will not be greater
than 7, so at most one extra byte needs to be skipped.
Make sure the dirty byte is flushed before writing bytes
Tidy up bit writing and skipping methods
BMP: prevent skipping bits beyond the end of the file
Merge pull request #1323 from melissalinkert/bit-ops

Add bit-level operations to RandomAccess{Input, Output}Stream