Merge pull request #3303 from 9rnsr/fix12025

Issue 12025 - Wrong purity violation accessing the length of a fixed size array
Merge pull request #3294 from 9rnsr/fix12203

Issue 12203 - typeof(null) does not convert to "void delegate(float)"
Merge pull request #3290 from yebblies/hdrgen

[DDMD] [refactor] Move Module::toCBuffer and genhdrfile into free functions
Merge pull request #3283 from 9rnsr/fix1566

[diagnostic] Issue 1566 - Nested template issue
[Refactoring] Remove `Scope *sc` from `Expression::addressOf`
fix Issue 12131 - Struct assign purity error
[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 TraitsExp semantic methods into free functions in traits.c
Move Dsymbol::emitDitto into a free function
Move ScopeDsymbol::emitMemberComments to a free function
Move Dsymbol::toDocBuffer into a visitor class
Move Dsymbol::emitComment into a visitor class
Move Module::gendocfile into a free function
Merge pull request #3289 from 9rnsr/refactor_addressOf

[Refactoring] Remove `Scope *sc` from `Expression::addressOf`
Merge pull request #3292 from yebblies/traits

[DDMD] [refactor] Move TraitsExp semantic methods into free functions in traits.c
[Refactoring] Share FuncDeclaration for _aaLen
fix Issue 12214 - AA.length is not nothrow