CTFE: paintTypeOntoLiteral() to UnionExp
Merge pull request #4166 from WalterBright/paintliteral

CTFE: paintTypeOntoLiteral() to UnionExp
Merge pull request #4165 from 9rnsr/refactor_ctfe

[Refactoring] Reduce code indent depth in CTFE interpreter
Return NULL from WithStatement::interpret()
Improve error messages in CTFE interpreter
[Refactoring] Remove Statement::interpret()

Conflicts:
	src/interpret.c
[Refactoring] Remove Expression::interpret()

Conflicts:
	src/interpret.c
[Refactoring] Handle NULL Expression or Statement in interpret() call
[Refactoring] Add findGotoTarget to share common code
[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