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.