Clean up code in inifile.c
do dead code elimination in release with debug info mode
Reference types are non-POD
Build using implicit rules with pattern matching

This change declares four implicit rules for building each of the set of
objects (DMD_OBJS, ROOT_OBJS, GLUE_OBJS and BACK_OBJS). It should make
it easier to add/change/control the compiler flags for the different set
of source files. Especially adding and changing warnings-flags being
used.

The difference against master (db2291f) on the object files only differs
(using md5sum) because of different content in 'verstr.h' which affects
'mars.c', and because 'strtold.c' is now compiled with flags and is
affected by optimization.
Add set of warning flags

Initally disabled keeping the old warning flags. Defining
ENABLE_WARNINGS turns them on. Flags suggested by Nordlöw in forum
thread: "Recommendation: Compile DMD with More Warnings"
Clean up compiler flag handling

All source files have a common set of build flags and those should be
put in CFLAGS, for example warnings, optimization level, and possibly
profiling flags if required.

Introduces four specific flags for the different object file sets to
keep some diversity if necessary. (This could be removed if the small
differences are insignificant).

Introduces ENABLE_DEBUG (same as DEBUG) and ENABLE_PROFILING to turn on
debugging and profile flags. ENABLE_PROFILING turns on previously
commented PROFILE and COV variables. Content is the same.
Add -boundscheck=[on|safeonly|off] option

Replaces -noboundscheck (which becomes deprecated)

Fixes issue #12550
fix Issue 7887 - [CTFE] can't assign to returned reference
Alter implicit pattern rule to not require vpath to ROOT

Object async.o was DMD_OBJS, should have been in ROOT_OBJS.
Change the diagnostic for wrongly imported modules to explicitly state how to import the target module.
Cleanup -vgc implementation
Merge pull request #3405 from jpf91/cleanVGC

Cleanup -vgc implementation
Correct warning flags
Merge pull request #3443 from eco/boundscheck

Add -boundscheck=[on|safeonly|off] option
excise .dup and .idup from compiler
Merge branch 'master' into rmdup
Merge pull request #3451 from WalterBright/rmdup

excise .dup and .idup from compiler
Merge pull request #3449 from 9rnsr/fix7887

Issue 7887 - [CTFE] can't assign to returned reference
Merge pull request #3375 from Trass3r/optref

do dead code elimination in release with debug info mode
Merge pull request #3450 from AndrejMitrovic/ImportDiag

Change the diagnostic for wrongly imported modules