std.bitmanip BitArray refactor

I reviewed BitArray and found a few issues:
- constness
- incorrect treatment of "pad" bits
- many places where size_t should have been used.
Should this `const` be moved after to make it clear that it's intended for the entire member to be `const` rather than just the return type? (same above and in various other places)