Merge pull request #1893 from WalterBright/improve_div

Improve division code generation.
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
Fix issue 8893 ICE(interpret.c) with invalid struct literal

The implicit conversion can fail.  In this case the struct literal is
invalid (which means it will never reach CTFE).
Merge pull request #1910 from donc/d1_merge_ctfe8893

D1 ONLY: Merge fix for 8893 ICE(interpret.c) with invalid struct literal
Merge pull request #1914 from WalterBright/fix8827

fix Issue 8827 - Cannot move contents of R12
Merge pull request #1916 from WalterBright/fix9965

fix Issue 9965 - Wrong Assembly For DIL, SIL Registers
Merge pull request #1917 from WalterBright/useSETcc

use SETcc instructions
Merge pull request #1924 from WalterBright/addOpt

optimize for adding Carry
Merge pull request #1938 from WalterBright/fix9931

fix Issue 9931 - Mac OS X ABI not followed when returning structs for extern (C)
Merge pull request #1921 from WalterBright/boolToLong

elide unnecessary CQDE
Merge pull request #1928 from WalterBright/toJC

JA to JC, JBE to JNC
Merge pull request #1954 from yebblies/nounion

Remove unused union from stringtable
Merge pull request #1951 from yebblies/identvsti

TypeQualified::idents are not always Identifiers, so stop pretending they are
Merge pull request #1952 from yebblies/missingdefault

Add missing default cases to switches