[Refactoring] Clean up statement interpretation
Simplify CallExp::interpret() and support DotTypeExp in CTFE

Handle function values in each CTFE steps, then interpreting CallExp::e1 just only once will be enough.

Problematic case is a __cpctor call. In it, the 'this' expression is an
unilitialized variable so we need to initalize it before the interpretation of e1.

Also simplify ThisExp::interpret, comes from CallExp improvement.
Stop generating internal __cpctor function so it's just redundant

Instead we can directly memcpy the object, then call the postblit.
Simplify CTFE interpreter

- Merely distinguish CTFE values and CTFE references.
Add CtfeResult
Revert "Stop generating internal __cpctor function so it's just redundant"

This reverts commit 52c6321c27cd37bd8181846e05f57d4e4c3a808d.

Conflicts:
	src/interpret.c