This is an implementation of a BitStream class that allows users to write data to an output stream at a bit level rather than a byte level.
To provide users with the flexibility needed to write bitwise information into an output stream with convenience.
Author: Jonathan Hart
Additional Credit: Inspiration was taken from RakNet's BitStream class as well as the Java SDK Stream Classes.