SmallBitVector implements a level of indirection over BitVector by
storing a smaller bit-vector in a pointer-sized element, or in case the
number of elements exceeds the bucket size, it creates a new pointer to
a BitVector and uses that as its storage.
However, the functions returning the vector size were using unsigned,
which is ok for BitVector, but not for SmallBitVector, which is actually
uintptr_t.
This commit reuses the size_type definition to more than just count
and propagates them into range iteration, size calculation, etc.
This is a continuation of D108124.
I haven't changed all occurrences of unsigned or uintptr_t to
size_type, just those that were directly related.