fix Issue 13200 - Assertion `protName' failed

Set `parent`, `protection`, `isdeprecated`, and `userAttribDecl` members of `EnumDeclaration` as same as class and struct declarations, even if its definition is opaque.
fix Issue 13788 - dmd segfault, pragma(mangle) and a mixin
Unlisted bug fix: correct sc->pop() timing
[Refactoring] Improve code flow for error handling
[Refactoring] Remove ScopeStatement that is hard to notice

Conflicts:
	src/expression.c
[Refactoring] Increase locality of variables
fix Issue 13787 - Error without line number when slicing function pointer
[Refactoring] Fix incorrect wording 'arg' 'argument' for Parameter objects

An exception is the around of TypeTuple. It stores types and expressions
merely using Parameter. So the wording 'arg' is not incorrect at least.
Merge pull request #4182 from 9rnsr/refactor_parameter

[Refactoring] Fix incorrect wording 'arg' 'argument' for Parameter objects
Merge pull request #4181 from 9rnsr/fix13787

Issue 13787 - Error without line number when slicing function pointer
Merge pull request #4180 from 9rnsr/fix13788

Issue 13788 - dmd segfault, pragma(mangle) and a mixin
Merge pull request #4179 from 9rnsr/fix13200

Issue 13200 - Assertion `protName' failed
[Refactoring] Make interpretFourPointerRelation static

Explicitly returning result from the non trivial helper function would be better than implicit result setting.
[Refactoring] A small code flow improvement in AndAndExp and OrOrExp
Improve error messages in CTFE interpreter
+stash for the code style changes
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.

+
Stop generating internal __cpctor function so it's just redundant

Instead we can directly memcpy the object, then call the postblit.
simplify ThisExp::interpret, comes from CallExp improvement
+Ideal interpretAssignCommon