Bitstrings

This adds primitives Bits8, Bits16, Bits32, and Bits64, a large set of primitives for performing bitwise and integer operations on them, a wrapper Bits : Nat -> Type which supports those manipulations on bitstrings of arbitrary width (silently capped at 64), and a wrapper Mod2 : Nat -> Type which implements a Num instance for integers mod 2^n based on Bits.

Performance currently leaves a lot to be desired, but it is my expectation that upcoming optimizations will reduce these to very low overhead.