Switched bitv to external iterators
Derive Clone for bitv stuff
Removed unecessary indirection in Bitv

BitvVariant is the same size as it was before (16 bytes).
Added iterator tests
Added bitv iterator benchmarks
auto merge of #7703 : sfackler/rust/bitv, r=alexcrichton

Switched Bitv and BitvSet to external iterators. They still use some internal iterators internally (ha).

Derived clone for all Bitv types.

Removed indirection in BitvVariant. It previously held a unique pointer to the appropriate Bitv struct, even though those structs are the size of a pointer themselves. BitvVariant is the same size (16 bytes) as it was previously.