Refactor BitV internals to not use macro, reduce duplication