Bit sets

This patch adds a new type for storing arrays of bits.  Each bit in the
array can be on or off.  We always allocate space for all of the bits
in the array, regardless of whether they are on or off.