2nd try at pull #2205
Merge pull request #2212 from WalterBright/refactor_error_check2

2nd try at pull #2205
Replace expression macro with lines in it
Expand macros in arrayop.c
Expand BinAssignExp macros in expression.h
Expand macros in lexer
Expand macros in mtype
Remove unnamed union with an initializer
Expand macros in traits
Expand macros in parser
Remove macros in lexer.h
Expand macro in interpreter
Make char unsigned
Mostly implicit conversions
Do not allocate Scope on the stack
Get rid of volatile_longdouble (do we need this?)
No implicit Object -> void*
No implicit real -> creal
Use memcpy to copy classes, not assignment
No implicit Identifier -> char* conversion
Some problem with [] -> * conversion inside functions (possible d bug)