cod2: Fix latent instruction reorder bug in cdmemcmp

Triggered on Linux by test81 in interpret.d with the
array comparison optimization patch.
Optimize simple array comparison (Issue 9477)
Fix issue 9744 Poor error message taking address of thread-local variable at compile time

Move the error message from the glue layer, into the interpreter.
Also fix an incorrect entry point into the glue layer.
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.
Allow pointer type-painting for pointers to global variables
Allow == comparison of absolute address pointers

They are mainly fake pointers, eg as used for Windows HANDLEs.
Comparison is allowed in const-folding, should be valid in CTFE too.
fix Issue 9788 - -profile doesn't work if exceptions are thrown in the running program
[Refactoring] Separate side-effect part in TupleExp

It had been implicitly contained in `te->exps[0]`, but it wasn't flexible design.
Factoring out the part to `TupleExp::e0` will make the design and code clean
Merge pull request #1763 from donc/ctfeStaticPtr9745

9744 and 9745: allow taking address of static variables in CTFE
optimize out dead catches
Merge pull request #1810 from WalterBright/rmdeadcatches

optimize out dead catches
Merge pull request #1812 from 9rnsr/refactor_tuple

[Refactoring] Separate side-effect part in TupleExp
Merge pull request #1766 from CyberShadow/fix9477

Optimize simple array comparisons (Issue 9477)
fix Issue 9759 - compiler segfault in StructLiteral::implicitConvTo(Type*) on invalid code
Merge pull request #1818 from 9rnsr/fix9759

[REG2.063a] Issue 9759 - compiler segfault in StructLiteral::implicitConvTo(Type*) on invalid code
Merge pull request #1806 from WalterBright/fix9788

fix Issue 9788 - -profile doesn't work if exceptions are thrown in the r...