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

https://issues.dlang.org/show_bug.cgi?id=7209

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.