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
Switch to power of 2 tables in aav.c

Brings in somewhere in area of 1-2% increase in speed as measured by
dmd -unittest -c std\algorithm.d

on Linux x64

This closely follows the original prime sizes by using next pow-2 of primes
and reproducing roughly the same grow factor (=4).

Takes into account that key are aligned pointers to strings
and thus need a fair bit-shake to get a decent distribution.
remove ifdef'ed trace from aav.c
Fix Issue 10897 - btc, btr and bts shouldn't be safe
fix issue 10617 - contract with -profile -debug is not nothrow
fix issue 10687 - Refused cast from uint[] to array of uint-based enums
at compile-time
Fix test-output format
Add enforce message
Merge pull request #2520 from 9rnsr/fix_pull2513

Fix pull2513
Merge pull request #2516 from hpohl/10617

[REG2.064a] fix issue 10617 - contract with -profile -debug is not nothrow
fix Issue 10953 - Attribute inheritance needs to apply to contracts, too
Merge pull request #2521 from 9rnsr/fix10953

Issue 10953 - Attribute inheritance needs to apply to contracts, too
Merge pull request #2517 from hpohl/10687

[REG2.064a] fix issue 10687 - Refused cast from uint[] to array of uint-based enums at compile-time
fix Issue 10789 - Struct destructor erroneously called
Merge pull request #2436 from blackwhale/tweak-hash

Change AAs to pow of 2 tables
Merge pull request #2523 from 9rnsr/fix10789

[REG2.061] Issue 10789 - Struct destructor erroneously called