tidb diff result with mysql when mix use union and union-all fix#6731
- rename `selectStmt.UnionDistinct` to `selectStmt.IsAfterUnionDistinct`
- add explain test
- remove useless `unionStmt.Distinct` and `selectList.Distinct`
- refactor use golang slice, remove dup code
- return WrongNumColumnInSelect error and add test case