Refactor BitV internals to not use macro, reduce duplication, fix is_disjoint

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.