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 10236 Ddoc: Warning on wrong parameter names/count
Fixed indentation (removed tabs)
Fix issue 10236 test case
Fix Issue 10897 - btc, btr and bts shouldn't be safe
Fix issue 10236: allow template parameters in Params section + test
[REG2.061] Issue 10946 - Integer constant expression expected instead of...
Fix issue 10949 CTFE ICE after indexing error

When an error occurs during optimize(), propagate the ErrorExp.
Merge pull request #2512 from 9rnsr/fix10946

[REG2.061] Issue 10946 - Integer constant expression expected instead of...
Merge pull request #2513 from donc/ice_arraybounds

Regression 10949: CTFE ICE after indexing error
fixes error propagation in optimize.c
Merge pull request #2514 from WalterBright/fix-error-prop

fixes error propagation in optimize.c
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