fix Issue 11718 - Unintended mangled names conflict of nested template structs

If a symbol has parent, the parent part of the mangled name should also be unique in each scopes.

Function symbols can have same identifiers in scope, so their parameters part must be always encoded in their mangled name to distinguish overloads.

When I fixed bug 9271, I had naturally expected that behavior. However sadly `mangle` function had had a bug.
Fix 11745: Private unit tests can not be invoked.
Added unittests for issue 11745.
incorrect strlen usage

- causes overflow for empty string
Expand SINGLE and DOUPLE macros in lexer.c
Do all error emission in the frontend
[style] Remove trailing spaces
[Refactoring] Move StructLiteralExp::fill into StructDeclaration

Perhaps this is the most better design so it would be final move.
fix Issue 11510 - Relax restriction for overlapped pointer field access in safe code/during CTFE

Check overlapped field default initializations immediately after the struct size is determined.
fix Issue 11427 - anonymous unions break structs in @safe code
Merge pull request #2973 from yebblies/lexermangle

[DDMD] Expand SINGLE and DOUPLE macros in lexer.c
Expand AssignExp macro
Merge pull request #2974 from yebblies/parsemacro

[DDMD] Expand AssignExp macro
Merge pull request #2757 from 9rnsr/fix11510

Issue 11510 - Relax restriction for overlapped pointer field access in safe code/during CTFE
Merge pull request #2953 from 9rnsr/fix11718

[REG2.065a] Issue 11718 - Unintended mangled names conflict of nested template structs
Finish linux -> __linux__
Merge pull request #2976 from yebblies/linuxlinux

Finish linux -> __linux__
fix Issue 11756 - Irrelevant variable name printing in CTFE error message
Merge pull request #2977 from 9rnsr/fix11756

Issue 11756 - Irrelevant variable name printing in CTFE error message
fix Issue 11751 - Hex float exponents should be decimal