CTFE: struct Multidimensional block assignment

The wrong CTFE behaviour was actually coded into a test in test42.d. That
test is fixed in this commit.
CTFE: run semantic on global variables

Only seems to happen with forward-referenced globals
Detect recursive initialization in CTFE const folding

This should actually be detected in the CTFE compilation step.