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.
What of the state of the pad bits? Would it be possible to use slice array operations here so that the runtime can use a SIMD version if available?