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.
improve comments
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 10394 - opBinaryRight!"in" and tuple
Merge pull request #2490 from WalterBright/comment-elfobj

improve comments
Issue 9982 case(b) wrong code for dotvar pointer assign

The existing code was complicated and just plain wrong.
Fix issue 9982 ICE on CTFE for pointer dereference

CTFE assignments can resolve to a StructLiteral inplace assign.
Merge pull request #2494 from AndrejMitrovic/Fix10869

Issue 10869 - Ddoc outputted some function modifiers twice.
Merge pull request #2498 from donc/ctfe9982dotvar

9982 ICE or wrong code for CTFE pointer dereference
Merge pull request #2493 from AndrejMitrovic/Fix10870

Issue 10870 - An interface in ddoc output should not be marked as abstract.