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
Add fail_compilation test for bug 2962
Adjust insertion target of the instantiated template
Move 4481 test from compilable to runnable in order to check the generated code
fix Issue 10086 - ICE(glue.c) or wrong code on passing variable as template value parameter
fix Issue 10857 - ICE(glue.c,　bugzilla 2962?) or compiles, depending on the files order
Additional fix issue 10758 for inout method of nested aggregate
Fix Issue 10626 - ICE with vector operation

Fix regression by forwarding buildArrayIdent and buildArrayLoop to the base implementation for all other derived expressions.

Add test cases to improve coverage.
Fix Issue 10870 - An interface in ddoc output should not be marked as abstract.
Fixes Issue 10869 - Ddoc outputted some function modifiers twice.
fix Issue 10836 - 'errors compiling the function' for optimized builds
Fix issue 10236 Ddoc: Warning on wrong parameter names/count
Fixed indentation (removed tabs)
Fix issue 10236 test case