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.
[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
[Refactoring] Remove goto jumps
fix Issue 11888 - Incorrect behaviour taking slice from return value
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
fix Issue 3449 - const and invariant struct members do not behave according to spec
Merge pull request #4026 from 9rnsr/fix11888

Issue 11888 - Incorrect behaviour taking slice from return value
wording of error messages
Merge pull request #4033 from MartinNowak/fix12979

fix Issue 12979 - Nothrow violation error is hidden by inline assembler
fix Issue 13574 - incorrect code for assignment to dollar in slice expression
[Refactoring] Remove duplication of nothrow check code
Merge pull request #4045 from 9rnsr/fix13574

Issue 13574 - incorrect code for assignment to dollar in slice expression