fix Issue 10066 - Template opEquals sometimes obstructs struct compilation

Move __xopEquals generation after struct semantic3 done
[Trivial] fix code loc
[Trivial] Improve code comments
fix Issue 10073 - Default opEquals depends on class declaration order with DMD HEAD
Convert all structs using inheritance into classes
Merge pull request #2025 from 9rnsr/fix10066

Issue 10066 - Template opEquals sometimes obstructs struct compilation
Fix Issue 10058.
Merge pull request #2007 from ibuclaw/cppmangle

Fix Issue 10058 - Inconsistent mangling between C++ and extern(C++).
Merge pull request #2033 from yebblies/structtoclass

[DDMD] Convert all structs using inheritance into classes
enum PROT -> PROT
enum TOK -> TOK
enum BUILTIN -> BUILTIN
enum PURE -> PURE
enum PASS -> PASS
enum Semantic -> Semantic
enum AliasThisRec -> AliasThisRec
enum TRUST -> TRUST
enum RET -> RET
enum LINK -> LINK
enum PREC -> PREC
enum Sizeok -> Sizeok