Improve the array dimexpr-match tests for more readable output and easier issue diagnosis.
Now, rejection cases run individually and report on their outcomes without dumping CFA error text. Also, now, the `array` macro expansion is suppressed in the output.
No change in what's being tested or why it passes.
Patch CFA arrays to work on multiple compile units by tactically changing compound-literal hoisting.
Hoisting that enables compound literals to participate in CFA initialization (RAII, globals/statics with dynamic initializer args) was found to be active in an inaccurate set of cases (both ways). The present change does not try to fix this situation. It just fixes a specific inaccuracy about when a static declaration's initializer is being worked on and adds the rule that compound literals that hoist to outside of a function always end up static. Subsequent work is hoped to bring more sense to the overall hoisting rule set.
Both added tests report failure for the original CompoundLiteral.cpp.
The test suite has never exercised this diagnostic feature.