fix Issue 13045 - TypeInfo.getHash should return consistent result with object equality by default

If struct member field has toHash method, or has non-bitwise equality, generate __xtoHash implicitly to guarantee `a != b || typeid(S).getHash(&a) == typeid(S).getHash(&b)`.
Revert "Merge pull request #3597 from MartinNowak/fix879"

This reverts commit dc0cd23ac22bec6818d0f907aefe6fd1f58dd7b8, reversing
changes made to e01af42edb9b3d6c718940dfa04bd29649b7254f.
fix Issue 13027 - Assertion `ex->op == TOKblit || ex->op == TOKconstruct' failed.
fix Issue 13026 - object.get cannot be called with [] as "defaultValue" argument
Merge pull request #3716 from 9rnsr/fix13027

[REG2.066a] Issue 13027 - Assertion `ex->op == TOKblit || ex->op == TOKconstruct' failed.
Merge pull request #3717 from 9rnsr/fix13026

[REG2.066a] Issue 13026 - object.get cannot be called with [] as "defaultValue" argument
Merge pull request #3715 from MartinNowak/fix12896

fix Issue 12896 - ld.gold complains about bad relocations when building libphobos2.so
Fix 13048 - Solaris no longer needs -mt during linking
Merge pull request #3551 from MartinNowak/immutableModuleInfo

mark ModuleInfo as read-only data
Merge pull request #3710 from 9rnsr/fix_hash

Introduce correct default hash calculation that is consistent with object equality
fix Issue 13053 - Wrong warning on implicitly generated __xtoHash
fix Issue 13049 - in template arguments the compiler fails to parse scope for function pointers arguments
Merge pull request #3720 from 9rnsr/fix13049

Issue 13049 - in template arguments the compiler fails to parse scope for function pointers arguments
fix Issue 13050 - pragma mangle breaks homonym template aliasing
Add comments in needOpEquals and needToHash
fix Issue 12255 - opCmp requirement for AAs breaks code

AAs should require equality and hashing for key types.
Remove dead D1INOUT code from parser
Merge pull request #3721 from 9rnsr/fix13050

Issue 13050 - pragma mangle breaks homonym template aliasing
Merge pull request #3722 from yebblies/D1INOUT

[cleanup] Remove dead D1INOUT code from parser
fix Issue 13044 - Assignment of structs with const members