Introduce BitString type class

This type class supports fixed-width integer types that can do bit
shifting, rotation, and other bit-twidding tricks. It extends
BooleanAlgebra and mimics much of the functionality you can find
in java.lang.Integer's static methods.

This class currently supports left and right shifting, and will
also support things like bit width, counting ones, etc.