fix Issue 9174 - regression(2.057) ice(cast.c) with ternary operator and alias this

Precedence 'alias this' resolving than integral promotion.
refactor type_enum
remove redundant slist_add()
fix Issue 9410 - Wrong selection for function overload
Merge pull request #1568 from WalterBright/b40

refactor type_enum
refactor type_struct_class
Merge pull request #1571 from 9rnsr/fix9410

[Regression 2.061] Issue 9410 - Wrong selection for function overload
Merge pull request #1533 from 9rnsr/fix9126

Issue 9174 - regression(2.057) ice(cast.c) with ternary operator and alias this
Merge pull request #1573 from WalterBright/b41

refactor type_struct_class
some more dt simplification
Merge pull request #1574 from WalterBright/b42

some more dt simplification