Added optimization of debug information for Mircosoft debuggers to -gc. When this optimization is enabled, '.' is replaced with '@' within type names. Also arrays passed to functions are now marked as references instead of pointers, because the pointer confuses the visual studio debugger.
fix Issue 12499 - tuple/TypeTuple 1-Arg initialization fails during CTFE
[Refactoring] deferred is necessary only for nested functions in unittests
fix Issue 12498 - ICE: while(string) causes compiler to crash during CTFE
Add assertion to detect internal failure in early stage
Merge pull request #3422 from 9rnsr/fix12498

Issue 12498 - ICE: while(string) causes compiler to crash during CTFE
Merge pull request #3421 from 9rnsr/refactor_glue

[Refactoring] deferred is necessary only for nested functions in unittests
fix mismatch of the scope push/pop paring
[Refactoring] Replace new Scope(*sc) to sc->copy()
fix Issue 11777 - [ICE] dmd memory corruption as `Scope::pop` `free`s `fieldinit` used also in `enclosing`
Merge pull request #3423 from 9rnsr/fix11777

[REG2.065] Issue 11777 - [ICE] dmd memory corruption as `Scope::pop` `free`s `fieldinit` used also in `enclosing`
fix Issue 12523 - wrong type deduced for foreach ref argument

- No need to change the storage class because the var type
  already has inferred modifiers.
Merge pull request #3424 from MartinNowak/fix12523

fix Issue 12523 - wrong type deduced for foreach ref argument
fix Issue 12312 - Diagnostic for void static arrays has gone bad
fix Issue 12534 - ICE on using expression tuple as type tuple

TypeSlice::next should be handled as same as TypeSArray and TypeDArray -
if the next part is reduced to error type, it should not be returned to
the original field.
fix Issue 12528 - [CTFE] cannot append elements from one inout array to another inout array
fix Issue 12390 - "has no effect in expression" diagnostic regression

When value discarding check on statements, the side-effect check should not be done deeply.
Merge pull request #3430 from 9rnsr/fix12528

Issue 12528 - [CTFE] cannot append elements from one inout array to another inout array
fix Issue 12476 - Assert error in interpret.c:3204
fix Issue 12460 - Crash with goto and static if

By implementing issue 10199, LabelStatement::statement may be NULL. So LabelStatement::syntaxCopy should consider the case.