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 10761 - DMD crashes on unspecified inout matching
fix Issue 10758 - Unsound type checking for inout
detab
fix Issue 10808 - [REG2.064a] Incorrect typeid template argument should report error

By the commit 1fdbfa65b8568837567533fb79d1b56ab88465ab, mangled name of template instance is lazily calculated and Expression::toMangleBuffer call is sometimes avoided. Then the case fail235.d was silently broken.
fix Issue 9017 - __traits(compiles, { enum e = <expression tuple>; }) is true but code doesn't compile
fix warnings emitted by clang
fix Issue 10811 - Order dependent IFTI failure
fix Issue 10804 - regression(2.063=>2.064) problem with Appender or dmd?
fix Issue 10711 - shared phobos library should not depend on _Dmain
fix Issue 10722 - Regression (2.064 git-head): Cannot interpret struct at compile-time
Use builtin typeinfo for const(char)[] as well.
Merge pull request #2479 from quickfur/issue6210

Fix issue 6210
Merge pull request #2476 from WalterBright/fix10711

fix Issue 10711 - shared phobos library should not depend on _Dmain