fix Issue 13774 - Multiple definition of ...

- COMDEF symbols should set pickAny when being added to a library
Merge pull request #4187 from MartinNowak/fix13774

fix Issue 13774 - Multiple definition of ...
regression test for Issue 13774
Merge pull request #4188 from MartinNowak/fix13774

regression test for Issue 13774
fix a bug introduced by the recent refactoring
[Refactoring] Tweak code style in interpreter
[Refactoring] A small code flow improvement in AndAndExp and OrOrExp
[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