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] checkNonAssignmentArrayOp
fix issue 13497 remained case

`AssignExp::semantic` should handle cases in both valid and invalid array operations.
fix Issue 12381 - [ICE] An internal error in e2ir.c while casting array ops
warn on .sort and .reverse usage
make typedef an error
fix Issue 13550 - Inner functions take outer function attributes erroneously
add new cdpopcnt to stub platform
Merge pull request #4031 from 9rnsr/fix13550

[REG2.067a] Issue 13550 - Inner functions take outer function attributes erroneously
Merge pull request #4032 from braddr/fix-stub

add new cdpopcnt to stub platform
Merge pull request #4028 from WalterBright/warn-sort-reverse

warn on .sort and .reverse usage
Merge pull request #4011 from 9rnsr/fix_arrayop

[REG2.065] Issue 13497 & 12381 - fix remaind e2ir ICE around array ops
[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