Add const_iterator test case.
Add random-access iterator for the bitvector.

Ultimately we want to use iterators to codify different traversal strategies of
bitvectors. However, we won't provide member functions bitvector::begin() and
bitvector::end() because it would force users to use a specific iterator. As
we'll add more iterator types, such as an efficient "all-ones" iterator based
on bitvector::find_next(), it's up to the users to construct their iterators,
which we'll support by having static member functions begin/end inside the
specific iterator.