make use of Statement::apply()
Merge pull request #1822 from 9rnsr/fix9806

[REG2.063a] Issue 9806 - assertion failure in struct.c:668
Merge pull request #1820 from WalterBright/refactorApply

make use of Statement::apply()
fix Issue 9858 - const alias this fails when opAssign is present

Type::makeXXX has unintentionally taken over Type(Struct|Class)::att.
Move informations for "recursive alias this detection" to AggregateDeclaration

Type object is not good place for storing volatile flags.