Fix signed/unsigned warnings related to 'global.errors'

Most function local variables assigned to by global.errors are 'int'
while global.errors is of type 'unsigned'. For clarity 'unsigned int' is
used.
Fix signed/unsigned warnings in for-loops
Fix -Wunused warnings for variables in DMD_OBJS

Warnings reported by -Wunused fixed by either removing code or putting
it within the if-ifdef scope where the code is used.
Fix -Wunused warnings for assignment in if-statements

Warnings reported by -Wunused for variable assignment in if-statements.
Fix warnings about uninitialized values
Issue 12852 - 64 bit wrong code generated
[Refactoring] checkPurity, checkSafety, and checkNogc
[Refactoring] Add Id::gate for more lightweight string comparison
[Refactoring] Add FuncDeclaration::isPureBypassingInferenceX()
fix Issue 6359 - Pure/@safe-inference should not be affected by __traits(compiles)
Merge pull request #3598 from andron/fix-warnings

Fix minor warning issues
fix Issue 12860 - typeid(_error_) symbols leaked to backend
fix Issue 4791 - Assigning a static array to itself should be allowed
Merge pull request #3628 from 9rnsr/fix4791

Issue 4791 - Assigning a static array to itself should be allowed
Merge pull request #3625 from 9rnsr/fix6359

Issue 6359 - Pure/@safe-inference should not be affected by __traits(compiles)
Merge pull request #3627 from 9rnsr/fix12860

[REG2.065] Issue 12860 - typeid(_error_) symbols leaked to backend
Delete unconvertable comment
Move #defined constants outside class declaration
Make narrowing conversion explicit
Fix Issue 12873 - Valgrind unhandled instruction bytes 0x48 0xDB (redundant REX_W prefix on x87 load)