[Refactoring] Remove semantic() call with NULL sc

Don't run semantic for corresponding TypeSArray generation.
Remain fix for issue 6169

Add ctfeResolveProperties() which avoids purity and safety check
Replace to startCTFE and endCTFE
Make new scope by startCTFE

There are many places where diverse things hold references to the same sc. Changing the state of a particular sc affects unrelated uses of it.
That's why creating a new sc to change state is necessary - it's the only way it's guaranteed to be unique.
Merge pull request #2290 from 9rnsr/fix6169

Remain fix for issue 6169