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

Use the existing 'inuse' mechanism to detect cycles.
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
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