fix Issue 9258 - opAssign with base class triggers "identity assignment operator overload" error
fix Issue 9416 - [REG][2.060 -> 02.061] DMD eagerly instantiates template parameter-less opAssign
fix Issue 9404 - Nullable is unusable with 2.061

Now, user-defined but non identity opAssign is just ignored in identity assignment resolving.

For the identity assignment operation, following four operations might be defined by the compiler.

1. If a user-defined identity `opAssign` is defined, it is used.
2. If the struct has postbit constructor, "copy & swap" operation is used.
3. If member-wise assignment is necessary, it is used.
4. Otherwise, assignment possibility is calculated from bitwise assignable of whole members.

As a conclusion, except for the case where the members have disabled opAssign, identity assignment will succeed in almost cases.
Clean up code for the __xopEquals generation

Use same way with the built-in opAssign generation.
Clean up test cases for issue 6174

Merged similar tests by making them parameterize.
fix Issue 6962 - Wrong Code With Scope Exit and Array Parameter, only with -O
Merge pull request #1586 from WalterBright/b46

fix Issue 6962 - Wrong Code With Scope Exit and Array Parameter, only wi...
Merge pull request #1585 from 9rnsr/fix_assign

Issue 9258 & 9404 & 9416 - fix regressions around opAssign