Fix issue 7790 [CTFE] assignment to AA apply ref argument

1. IndexExp: Stop copying the AA whenever it is indexed (This was horrific for
performance, as well as being wrong).
2. aaApply: If the value is 'ref', create a reference to the value.
Fix issue 9170 CTFE: Allow reinterpret casts float <-> int

Only allows the special case *(cast(U*))&e, where e is an expression
of type T, T.sizeof == U.sizeof, one type is integral
(int, uint, long, ulong) and the other is floating point (float,
double, ifloat, idouble).
Purpose: allow implementation of HalfFloat.
Fix issue 9236 CTFE ice on switch + with(EnumType)

When it's with(Type), dont try to interpret it, it's a no-op.
fix Issue 9338 - Compiler segfaults if try to CTFE member function without valid 'this'
Fix issue 9745 Allow &staticvar in CTFE

Use SymOffExp for non-dereferenceable pointers to static variables.
It's already supported in the const-folding code, now support it in
CTFE as well. This commit adds full support for pointer arithmetic.
Fix issue 9445 ICE(interpret.c) calling parameter in CTFE

Typo: should be checking variable has a value, not getting the value
(which will ICE if it has no value).
Merge pull request #1908 from donc/d1_ctfe_sixbugs

D1 ONLY: Merge six CTFE bugfixes from D2