Merge pull request #4170 from 9rnsr/refactor_ctfe

[Refactoring] Remove interpret member function from Expression and Statement
fix misleading deprecation messages
Merge pull request #4173 from WalterBright/errordep

fix misleading deprecation messages
Improve error messages in CTFE interpreter
[Refactoring] Make interpretFourPointerRelation static

Explicitly returning result from the non trivial helper function would be better than implicit result setting.
+stash for the code style changes
Remove ctfeNeedLvalurRef
ThisExp ref support1
ThisExp ref support2 (AddrExp &this)
Fix for test6178d() in test/runnable/testaa.d
Fix Appender CTFE for the unittests in std.string
Fix test/runnable/testaa3.d
(improve1)
(improve2)
More ArrayLiteralExp copy-on-write
+more
TupleExp must not appear in AssocArrayLiteralExp
Make ArrayLiteralExp::elements NULL-able
Interpret FuncDeclaration as a VarExp