fix Issue 10948 - BitArray.opEquals is invalid

https://issues.dlang.org/show_bug.cgi?id=10948

Implemented the fix as proposed by nbelov on Bugzilla. Included are unit tests which would have triggered this bug and also fixed it in opCmp.

The issue was that the 32 bit expression "(1 << n)" was treated as being of size_t, which lead to incorrect bit patterns on 64 bit environments.
Merge pull request #2204 from jblume/issue-10948

fix Issue 10948 - BitArray.opEquals is invalid