more error propagation
fix Issue 11039 - Undefined instantiation from circular imports
Fixes Issue 10099 - Better diagnostic for a disabled default constructor.
Merge pull request #2572 from AndrejMitrovic/Fix10099

Issue 10099 - Better diagnostic for a disabled default constructor.
Merge pull request #2556 from WalterBright/fix11039

fix Issue 11039 - Undefined instantiation from circular imports
Improve error propagation around template instantiation and static-if condition

- Don't instantiate template body when "template signature semantics"
  (== findTemplateDeclaration, semanticTiargs, and findBestMatch) make errors.

- Don't save ErrorExp in StaticIfCondition::exp` during error gagging enabled.

- FuncExp should return ErrorExp when the lambda body makes errors.
fix Issue 11054 - ICE: interpret.c:357: virtual void Statement::ctfeCompile(CompiledCtfeFunction*): Assertion `0' failed.
Merge pull request #2569 from 9rnsr/fix11054

Issue 11054 - ICE: interpret.c:357: virtual void Statement::ctfeCompile(CompiledCtfeFunction*): Assertion `0' failed.
[Refactoring] Reorder TemplateInstance member functions

Sort them based on the semantic order.
[Refactoring] bool TemplateInstance::hasNestedArgs(...)
[Refactoring] Add Module::isRoot()
fix Issue 11062 - inline ice with alias this and opIndexAssign
Merge pull request #2576 from 9rnsr/fix11062

[REG2.06a] Issue 11062 - inline ice with alias this and opIndexAssign
refactor enum code
Merge pull request #2568 from WalterBright/enum-refactor

refactor enum code to do forward references of members
Merge pull request #2574 from 9rnsr/refactor_root

[Refactoring] Add Module::isRoot()
Merge pull request #2573 from 9rnsr/refactor_template

[Refactoring] Reorder TemplateInstance member functions
Merge pull request #2535 from WalterBright/statement-errors

more error propagation
fix Issue 8825 - Wrong line number of error message

- Each tokens should have its own 'loc'.
- Rename `Lexer::loc` to `scanloc` to avoid misuse of lookahead-loc.
Fix trivial wrong line number of aggregates