Merge pull request #2401 from 9rnsr/refactor_overload

[Refactoring] Improve overload iteration and IFTI processing
[trivial] fix style nitpicks
[Refactoring] Improve error check in CallExp::semantic
fix Issue 10658 - Cannot merge template overload set by using alias declaration

- Add OverDeclaration and see it in overloadApply.
- Use OverDeclaration for template overload set merging.
- Check OverDeclaration in DotVarExp and VarExp.