BitSet: swap the underlying BitVector for Vector{UInt64}
The BitVector had already started to show its limits for
BitSet needs. Juggling at 3 layers with BitSet, BitVector,
and Vector{UInt64} was becoming confusing at times.
Updating this code to handle negative integers only
increased the confusion.
Some modest performance improvements (~20%) could be achieved
in the process for some functions.