do dead code elimination in release with debug info mode
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.
[style] fix indent
fix Issue 12174 - Problems caused by enum predicate with std.algorithm.sum
fix Issue 12506 - Wrongly private lambda to define global immutable array
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.
Merge pull request #3426 from 9rnsr/fix12174

[REG2.064] Issue 12174 - Problems caused by enum predicate with std.algorithm.sum
Merge pull request #3419 from 9rnsr/fix12506

Issue 12506 - Wrongly private lambda to define global immutable array
fix Issue 12063 - No line number error on uninitialized enum member if base type is not incrementable
Merge pull request #3444 from 9rnsr/fix12063

Issue 12063 - No line number error on uninitialized enum member if base type is not incrementable
fix Issue 11906 - Compiler assertion when comparing function pointers

If `f->isImportedSymbol()` is true, the translation from `AddrExp(VarExp(f))` to `SymOffExp(f)` in `AddrExp::optimize` will be skipped.
Therefore, the assertion is just wrong.
Merge pull request #3445 from 9rnsr/fix11906

Issue 11906 - Compiler assertion when comparing function pointers
fix Issue 11885 - ICE(s2ir.c 359) with continuing a labeled ByLine (range struct w/ dtor) loop
fix Issue 12179 - [ICE](e2ir.c 1861) with array operation
Merge pull request #3427 from 9rnsr/fix12179

[REG2.065] Issue 12179 - [ICE](e2ir.c 1861) with array operation
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.
fix Issue 10169 - duplicate error message: member is not accessible
Merge pull request #3446 from 9rnsr/fix11885

Issue 11885 - ICE(s2ir.c 359) with continuing a labeled ByLine (range struct w/ dtor) loop
Merge pull request #3418 from 9rnsr/fix12009

Issue 12009 - local import and "unable to resolve forward reference" error