fix Issue 6652 - 2. Deprecate modifying non ref variable.
Refactoring around function semantic invocation.
fix Issue 5933 - Cannot retrieve the return type of an auto-return member function
fix Issue 7159 - Forward reference when casting auto return method
fix Issue 9377 - Link-failure regression cause by fixing issue 8504

The test is disabled only in win64 platform.
fix test result for issue 6661

Inherently, when you try to instantiate a template, the whole template
body correctness should be checked at the same time.

In this case, bug6661!(int).qutz is a normal function declared inside
template, so it should be instantiated at the same time with bug6661!(int).
Now, the inner `static assert(qutz(13).sizeof!=299);` runs the semantic3
of qutz by calling it. So the module level static assertion fails _correctly_.

But, `is(typeof(bug6661x!(int)))` still returns true incorrectly.
I think it is yet another known issue in current dmd implementation.
Merge pull request #1009 from 9rnsr/fix6652_2

fix Issue 6652 - 2. Deprecate modifying non ref variable.
add -gx to add stack stomp code
Merge pull request #1543 from 9rnsr/fix5933

Issue 5933 & 7159 & 9377 - Invoke function semantic3 correctly where it is required.
Merge pull request #1542 from WalterBright/b29

add -gx to add stack smash code
fix Issue 9369 - DDoc hardcodes '&' -> '&amp;' in code
Merge pull request #1547 from WalterBright/b30

fix Issue 9369 - DDoc hardcodes '&' -> '&amp;' in code
minor correction to pull #1543
Merge pull request #1548 from WalterBright/b31

minor correction to pull #1543