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
AA tests harmonization with new AA implementation
Fix Issue 13679 - foreach_reverse is allowed for AAs
Issue 12765 - dmd needs a "--version" option like gdc

- move printing of compiler logo into separate function

- add --version switch to only print version and copyright
fix Issue 13673 - ICE(backend/cod2.d 5114)
Merge pull request #4112 from MartinNowak/fix12765

Issue 12765 - dmd needs a "--version" option like gdc
refactor - reduce CTFE memory consumption pt 1
Merge pull request #4113 from WalterBright/fix13673

fix Issue 13673 - ICE(backend/cod2.d 5114)
fix Issue 11216 - Make synchronized statement `nothrow`

- mark _d_monitorenter/exit as nothrow
Merge pull request #4067 from IgorStepanov/newaa-dmd-tests

[new AA] AA tests harmonization with new AA implementation
add target for default dmd.conf

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

- does not overwrite existing dmd.conf files