Fix bug 10280 CTFE: Circular variable initializers should be detected properly

Use the existing 'inuse' mechanism to detect cycles.
Fix bug 10283 ICE(interpret.c): passing struct with failed initializer to CTFE

If a struct literal contains an error field, it's an error.
fix Issue 8651 - Slice op Slice throws exceptions (not errors), and nothrow

Array ops should work in @safe pure nothrow code
fix Issue 7848 - pure and nothrow ignored on unittest blocks
Remove last case of optimize(WANTinterpret)
fix Issue 10289 - compiler should infer nothrow even if Error is thrown
Merge pull request #2144 from donc/ice10283ctfestructlit

10283: ICE in CTFE
[trivial] Remove stray comment.
[trivial] Fix name in comment rule.
Merge pull request #2147 from klickverbot/trivial-fixes

Trivial comment fixes
fix issue 9904 - typeof(null) can be casted to aggregate type if .sizeof
equals size of pointer
Merge pull request #2145 from 9rnsr/fix10289

Issue 10289 - compiler should infer nothrow even if Error is thrown
Implement DIP37 Importing Packages as if They Were Modules
Merge pull request #2140 from donc/circinit10280

10280 CTFE: Circular variable initializers should be detected properly
Merge pull request #2141 from 9rnsr/fix8651

Issue 8651 - Slice op Slice throws exceptions (not errors), and nothrow
Merge pull request #2142 from 9rnsr/fix7848

Issue 7848 - pure and nothrow ignored on unittest blocks
fix Issue 9628 - Lambda in foreach loop Vs. lambda in static foreach loop
Merge pull request #2148 from hpohl/9904

fix issue 9904 - typeof(null) can be casted to aggregate type if .sizeof equals size of pointer
Merge pull request #2029 from 9rnsr/fix9628

Issue 9628 - Lambda in foreach loop Vs. lambda in static foreach loop
fix Issue 10299 - ICE with getting address of template