fix Issue 12436 - Opaque struct parameter type should not be allowed
fix Issue 12307 - Contextfull error diagnostic about AA key type
Fix bug 7209: Stack overflow on circular enum with explicit type

Detect the error in the semantic pass. This slightly changes the error
message for one existing test (it was previously detected inside CTFE)
-- now the *first* circular definition generates the error, which makes
more sense.
Merge pull request #3601 from 9rnsr/fix12307

Issue 12307 - Contextfull error diagnostic about AA key type
Merge pull request #3584 from 9rnsr/fix12436

Issue 12436 - Opaque struct parameter type should not be allowed
Merge pull request #3594 from donc/circular_enum7209

Fix bug 7209: Stack overflow on circular enum with explicit type