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.