A BitVec class.

Created for use by entity package, but general purpose enough to live in util.
Revamped to make Entity final, pool entities.

Entity is now a reusable container for an int and some bit flags. This
eliminates the "extend Entity and sneak some stuff in your class" approach, but
you can just wrap an Entity in your sneaky class if you really want do to that.

I considered eliminating Entity entirely and just passing around an int, but
the need to box the int to dispatch entityAdded/Changed/etc. signals made me
rethink things. The goal with pooled entities is zero GC during normal
operation, and boxing would thus be a no-no. I could keep the Integer instances
around, but at that point I might as well create my own "box" (aka Entity)
which can also have the "interested systems" and "attached components" bit
masks, along with a few other flags.

This also eliminates the limit on number of systems and components. Yay BitVec.