fix Issue 12727 - DMD hangs up on recursive alias declaration

By the commit fd1762c33ac034ad3112e69f21421b5c75b3cc6c, now static-if declaration does nothing in `addMembers` phase, and conditional eponymous template instance cannot raise "recursive alias declaration" error in `TemplateInstance::semantic`, because `TemplateInstance::aliasdecl` is not set until the end of it.

By looking for circular aliasing not only in `AliasDeclaration::semantic` but also in `AliasDeclaration::toAlias`, we can defer the detection until appropriate timing.
[Refactoring] Remove implicitly generated AliasDeclaration in TemplateInstance
Merge pull request #3545 from 9rnsr/fix12727

[REG2.066a] Issue 12727 - DMD hangs up on recursive alias declaration
fix Issue 12719 - struct.c:705: virtual void StructDeclaration::semantic(Scope*): Assertion `parent && parent == sc->parent' failed.