Introduce MODtoChars to avoid code duplication.
improve copyprop and rmdeadass for structs
Fix issue 1841 Closure detection fails in nested functions

If an escaping function doesn't use any closure variables, but
calls another nested function which does, it must be marked as
needing a closure. This 'calling a sibling' case was missing.
Fixes Issue 9398 - Print colon instead of question mark for mismatch of ternary operator types.
fix for optimizer changes
fix for optimizer changes 2
Merge pull request #1555 from AndrejMitrovic/Fix9398

Issue 9398 - Print colon for mismatch of ternary operator types
Merge pull request #1553 from WalterBright/b33

improve copyprop and rmdeadass for structs
Fixes Issue 8892 - Better diagnostic for static array assignment.
fix test case
correction to last fix
Merge pull request #1559 from WalterBright/b34

fix Issue 9320 - optimizer should do copy propagation on structs, too
just a little refactoring
just a little refactoring
fix Issue 9409 - [2.062-alpha] Regression with $ inside of expression tuples
Merge pull request #1558 from AndrejMitrovic/Fix8892

Issue 8892 - Better diagnostic for static array assignment
Merge pull request #1561 from WalterBright/b35

moving to a better interface to the back end
more simplifying backend interface
Using rsp instead of esp

See http://forum.dlang.org/thread/jythfvgxrvqvdphaihlr@forum.dlang.org and https://github.com/ldc-developers/ldc/pull/269.
small cleanup