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

Reinstate optimizer error for integer division by zero
Normalize backend's elf structures with system headers.
Forward to system headers when available.
implement UDA for module declaration
[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 13356 - [ICE] (dmd 2.066: statement.c:754) with recursive Algebraic
[Refactoring] Remove goto jumps
fix Issue 11888 - Incorrect behaviour taking slice from return value
fix Issue 13563 - ICE with opIndexAssign op-overloading and ModuleScopeOperator
fix Issue 13564 - nested struct destructor trying to access members of a global class fail to compile
fix Issue 12979 - Nothrow violation error is hidden by inline assembler

- deprecate using unattributed asm in attributed functions

- add explicit attributes on asm statments (unverified by compiler)

  asm pure nothrow @nogc @trusted {
    //...
  }

- added new CompoundAsmStatement because the parser
  already splits asm blocks into many AsmStatements
Merge pull request #3947 from IgorStepanov/module-attributes

[enh] implement UDA for module declaration
Remove internals for typedef declaration
Deprecate is(T == typedef) syntax