Fix Issue 5908 - Optimizer generates wrong value with divide-by-zero.

Reinstate optimizer error for integer division by zero
[Refactoring] simplify the code to inherit @safe attribute
[Refactoring] simplify the code in checkPurity
fix 9148 - Issue 9148 - 'pure' is broken
Remove hack for issue 10981
fix Issue 9620 - Error messages of failed pure enforcement
fix Issue 12912 - Lambda function is incorrectly inferred as impure if it uses member field or function
fix Issue 12908 - [AA] `foreach` by keys and values over associative array in pure function allow impure function calls
fix Issue 13120 - Body of `foreach` over string with transcoding ignores function attributes
fix Issue 3449 - const and invariant struct members do not behave according to spec
Fix Issue 13679 - foreach_reverse is allowed for AAs
refactor - reduce CTFE memory consumption pt 1
add target for default dmd.conf

- works for the common dmd/druntime/phobos folder layout

- does not overwrite existing dmd.conf files
use std.algorithm: cmp
better error message when the same file is specified twice on the command line
Merge pull request #4122 from 9il/cmp

use std.algorithm: cmp
Merge pull request #4098 from MartinNowak/dmdConf

add target for default dmd.conf
Merge pull request #4123 from rainers/issue13704

Fix issue 13704 - Confusing error message when passing the same on the command line twice
Merge pull request #4042 from 9rnsr/fix3449

Issue 3449 - const and invariant struct members do not behave according to spec
Fix Issue 13707 - msvc32 C++ struct return ABI not followed for structs with constructors

A constructor should stop a struct from being passed in registers on win32/C++.