Fix 11745: Private unit tests can not be invoked.
Added unittests for issue 11745.
incorrect strlen usage

- causes overflow for empty string
Make Array take the actual type of the stored element
fix Issue 10643 - Refused const array struct field initialized with void

Void initialized non-mutable aggregate members should become instance fields.
fix Issue 11720 - Function-local static variables should cause "already defined in another scope" error
fix Issue 11793 - [ICE] Compiler runs out of memory with trivial program: class with own class member instance
fix Issue 11767 - doubly mixed-in struct "failed semantic analysis"

Inherently this is a mangling issue, which had been hidden since 2a3db5d7afd0c26e8a0ec58ff6fb6a8cd9647de6, and then detected by [the assertion for AST sanity](20fe5e8600498fed322a7d5d8305acb2de852cde).

Each mixed-in symbols are in independent scope, and their mangled names should also be different.
To fix the issue, assign scope-local unique name for each unnamed `TemplateMixin`s, as same as lambdas.
ErrorExp should not inherit from IntegerExp
Remove SEH comment that applies to deleted code
Merge pull request #3023 from yebblies/sehcomment

Remove SEH comment that applies to deleted code
Do not use array length trick in imphint.c
Do not use array length trick in utf.c
By definition, cmtable is always 256 elements
Do not use array length trick for 'keywords'
Do not use array length trick in Lexer::uniqueId
Do not use array length trick in speller unittest
Do not use array length trick in ForeachStatement::semantic
Do not use array length trick in VersionCondition::isPredefined
Do not use array length trick in floatToBuffer