added putByte
refactored exception type names
added InvalidArgumentException
added buildValue
changed tests to use fixed size ints
changed bit manipulation functions to throw InvalidArgumentException instead of LogicException
added toBinaryString