Fixing Bits - more considerate about set bits.

The current Bits implementation doesn't cope well when the backing array differs in length. This affects:
- **hashcode/equals:** hashcode and equality should only consider set bits.
- **bitwise operations, except andNot():** only performs the operation up to the length of the shortest array.



We might have to write unit tests if we include junit. ;)