Fix Issue 7077 - mixin statements can invade the enclosing scope

The if body should always be inside its own scope
Merge pull request #2402 from yebblies/issue7077

Fix Issue 7077 - mixin statements can invade the enclosing scope
Use strings instead of identifiers in STC table, so it can be constructed at compile time
Do not use implicit int -> bool conversion (not valid in D)
Explicitly cast Type* to char*
Do not set boolean with +=
Use const char[] for constant message string
Explicitly cast FuncDeclaration to void*
No implicit Identifier -> char* conversion
char* -> const char*
Clean up interpretCommon function pointers
Reuse the function pointer definition from expression.h for apply
Merge pull request #2413 from yebblies/stringtable

[DDMD] char* -> const char*
Merge pull request #2412 from yebblies/identchar

[DDMD] No implicit Identifier -> char* conversion
Merge pull request #2408 from yebblies/voidcast

[DDMD] Explicitly cast FuncDeclaration to void*
Merge pull request #2406 from yebblies/setboolean

[DDMD] Do not set boolean with +=
Merge pull request #2405 from yebblies/typechar

[DDMD] Explicitly cast Type* to char*
Merge pull request #2404 from yebblies/isunionbool

[DDMD] Do not use implicit int -> bool conversion (not valid in D)
Merge pull request #2407 from yebblies/constmessage

[DDMD] Use const char[] for constant message string
Merge pull request #2416 from yebblies/applyfp2

[DDMD] Reuse the function pointer definition from expression.h for apply