Refactor BitV internals to not use macro, reduce duplication
Fixing bitvset is_disjoint, fixes #16587
auto merge of #16582 : Gankro/rust/bitv, r=alexcrichton

This was bothering me (and some other people). The macro was necessary in a transient step of my development, but I converged on a design where it was unnecessary, but it didn't really click that that had happened.

This fixes it up.