CTFE: Typo in typecheck for casts of AddrExp pointers

Was checking the pointer type instead of the pointee type.
Exposed by Test75 in interpret3.d in test suite, when using CTFE to do
const folding.
CTFE: &global -> SymOffExp

optimize() changes AddrExp(globalvar) into a SymOffExp.
But optimize() isn't always called before CTFE, so do it here too.
Fix bug 10273: ICE(ctfeexpr.c): using CTFE after error in struct init
Merge pull request #2133 from donc/ctfe_internal_fixes

Two more CTFE internal fixes relating to pointers
Merge pull request #2134 from donc/ctfe10273_icestructinit

Fix bug 10273: ICE(ctfeexpr.c): using CTFE after error in struct init
+1 Necessary for nothrow Appender
+2 address of template function that failed instantiation