fix Issue 12235 - ICE on printing mangled name of forward reference lambda by pragma(msg)
fix Issue 12236 - Inconsistent mangleof result
fix Issue 12237 - Inconsistent behavior of the instantiating enclosing template function
[trivial] fix style nitpicks
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.
Merge pull request #2417 from 9rnsr/fix10658

Issue 10658 - Cannot merge template overload set by using alias declaration
Merge pull request #3370 from 9rnsr/fix_lambda

Issue 12235 & 12236 & 12237 - fix issues around lambda