[cleanup] fix indent style
fix Issue 2025 - Inconsistent rules for instantiating templates with a tuple parameter

1. Adjust matching level for issue cases.

 a. `TemplateTupleParameter::matchArg` should always return `MATCHconvert` in order to have the lower priority than other non-tuple templates.
 b. `TemplateTypeParameter::matchArg` and `TemplateAliasParameter::matchArg` should return same match level (== MATCHconvert) for aggregate types.
 c. In leastAsSpecialized comparison, aggregate types should prefer template type parameter. For that, `TemplateAliasParameter::matchArg` should match to `tdummy`.

2. Add "dependent template parameter" concept

 Their `matchArg` should return binary result - match or nomatch, in order to follow the match level of the corresponding precedent parameter.
fix Issue 1659 - template alias parameters are chosen over all but exact matches.
fix Issue 12077 - Instantiated type does not match to the specialized alias parameter
Move Dsymbol::toSymbol into a visitor class
Error propagation of UnaExp::semantic and BinExp::semantic
fix Issue 12153 - Ternary operator on static array lvalues creates copy
Remove unused esync member and constructor
optimize UnaExp and BinExp::semantic call
Error propagation of typeCombine
optimize typeCombine call
Directly return the result of incompatibleTypes
Make `UnaExp::semantic` and `BinExp::semantic` abstract.
Merge pull request #3330 from yebblies/esync

[cleanup] Remove unused esync member and constructor
Remove throw/catch from iasm.c
Normalize indentation in iasm.c
Replace iasm error table with string literals
iasm STATIC -> static
Remove prototypes for undefined and unreferenced functions
Normalize iasm brace placement