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.

Incidental fixes:
- https://issues.dlang.org/show_bug.cgi?id=11015
Nitpick: I'll let the other Phobos devs chime in, but I find this indentation rather counterintuitive. Shouldn't it be indented one level deeper? I know that usually we write `private:` at the above level of indentation, but when braces are involved, it just looks weird to have it indented this way.