We store the bit position in two parts.
We store the bit position in two parts. The whole-byte part is the byte buffer's position(). The fraction-of-a-byte part is this bit offset. If one needs the bitPos0b, that's a method that recombines the position() with this offset.
The state that must be saved and restored by mark/reset calls