do dead code elimination in release with debug info mode
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.
include dependencies for all object files
fix Issue 12009 - local import and "unable to resolve forward reference" error

`Module::semantic2` could be invoked from local imports, even when some
local symbol semantics are not yet completed.
fix Issue 12499 - tuple/TypeTuple 1-Arg initialization fails during CTFE
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.
fix Issue 12509 - Compiler performance highly depends on declared array size - for struct with long static array of structs
Merge pull request #3424 from MartinNowak/fix12523

fix Issue 12523 - wrong type deduced for foreach ref argument
[style] fix indent
fix Issue 12174 - Problems caused by enum predicate with std.algorithm.sum
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
Clarify what -noboundscheck actually does in help
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.
Merge pull request #3434 from 9rnsr/fix12460

Issue 12460 - Crash with goto and static if
Merge pull request #3432 from 9rnsr/fix12390

[REG2.066a] Issue 12390 - "has no effect in expression" diagnostic regression