[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.
Simplify CTFE interpreter

- Merely distinguish CTFE values and CTFE references.
- Improve any reference handling, including 'this' expresison.
Add CtfeResult