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.
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