Merge pull request #1948 from 9rnsr/fix10005

Issue 10005 - struct variable declaration and const-correctness
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