Allow extern(C++) classes
Do not emit classinfo pointer as first entry of vtbl for C++ or COM classes
Do a reinterpret cast for any cast to or from a C++ class or interface
Do not compare C++ classes with .object.opEquals
Disable invariant calls for C++ classes
Fix Issue 10897 - btc, btr and bts shouldn't be safe
fix Issue 10573 - Weird linking problem with associative array cast

CastExp would call `TypeAArray::getImpl()` in glue layer.

However if the AA type is just only used in the cast expression, the timing is too late to invoke `getImpl`, because the AA type instantiation may need more semantic analysis like deferred semantic3.

For the correct instantiation of the `AssociativeArray!(K, V)` type, `getImpl` should be invoked in front-end layer beforehand.
[Refactoring] Type::baseElemOf()
detab test/runnable/eh.d
fix Issue 10964 - Static array assign/blit exception slips through catch block.
Issue 10968 - array element copy (1-N and N-N) ignores postblit attributes
Merge pull request #2524 from 9rnsr/fix10573

[REG2.063] Issue 10573 - Weird linking problem with associative array cast
Merge pull request #2525 from 9rnsr/fix10964

[REG2.063] Issue 10964 - Static array assign/blit exception slips through catch block
Merge pull request #2441 from yebblies/cppclass

[DDMD] Allow extern(C++) classes
Merge pull request #2503 from monarchdodra/bt

Fix Issue 10897 - btc, btr and bts shouldn't be safe
Fix 32 bit build.

This fixes GitHub pull request #2503.
Merge pull request #2530 from klickverbot/bitop-system-32bit

Fix 32 bit build.