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
interpret FuncDeclaration as a VarExp

In CallExp, if its e1 is DotVarExp and pthis is a VarExp, interpreting
it to a literal would be problematic currently.
Later it should be fixed and CallExp::interpret should be simplified more.

-> Its a problem around __cpctor function call. Correctly initializing
new variable fixes the issue.
handle direct call (the flag should go in front-end)
+Support DotTypeExp