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.
Add -vgc switch

The following known allocations are intentionally not handled:

* AssertExp
* CmpExp
* AssignExp: Calls _d_arrayassign
* Hidden function errors: Are already deprecated
* SwitchErrorStatement

All these cases only allocate by throwing exceptions
and disallowing them would impact user code a lot. In
order to really solve such issues we need some way to
throw exceptions without GC-allocation.

Also not handled are indirect calls to user-defined
functions which may allocate (calling postblits in
array assignment for example). As this commit does
not provide a way to mark a function as @nogc there's
no way to know if such functions actually allocate.

These indirect calls to user defined functions must
be revisited when a @nogc attribute is introduced.
Don't indent location part of diagnostic messages
Merge pull request #3402 from CyberShadow/ambig-indent

Don't indent location part of diagnostic messages
Don't rebuild d_do_test.exe every time on Windows
Merge pull request #3403 from CyberShadow/d_do_test_exe

Don't rebuild d_do_test.exe every time on Windows
Merge pull request #1886 from jpf91/vgc

Implement nogc framework (warn about GC allocations)
include dependencies for all object files
Use 'if' instead of 'else if' to avoid a comment the ddmd converter can't handle
Fixed "@disable this" propagating through references (issue 8296)
Merge pull request #3409 from yebblies/elseif

[DDMD] Use 'if' instead of 'else if' to avoid a comment the ddmd converter can't handle
Visual Studio build fix (add nogc.c)
Merge pull request #3412 from CyberShadow/vs-20140330

Visual Studio build fix (add nogc.c)
fix Issue 12497 - ICE on string mixin with non-string operand
Merge pull request #3413 from 9rnsr/fix12497

[REG2.064] Issue 12497 - ICE on string mixin with non-string operand
Merge pull request #3411 from Ingrater/fix8296

Fixed "@disable this" propagating through references (issue 8296)
fix Issue 12501 - Assertion `global.gaggedErrors || global.errors' failed.
Merge pull request #3414 from 9rnsr/fix12501

[REG2.066a] Issue 12501 - Assertion `global.gaggedErrors || global.errors' failed.
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.