[Refactoring] Rename local variables
[Refactoring] Swap parameters loc and sc

Only overload related functions use (sc, loc) order, but others (Type::semantic, Type::resolve, functionParameters, etc) uses (loc, sc) order. Therefore align the parameter orders to the latter.
[Refactoring] Remove redundant argument setting
[Refactoring] Use resolveFuncCall in almost places
[Refactoring] Do not calculate buf if it is not necessary.
[Refactoring] Rename variable

targsi -> tiargs (== Template Instance ARGS)
Cleanup comments
[improve] Allow psparam == NULL on TemplateParameter::deduceType

This will avoid some unnecessary symbol declaration like for just type matching.
Allow heterogeneous overload list of templates and functions

Overloaded functions are collected on the head side of list, and templates are on the other side.

Taking the root of heterogeneous list in DotTemplateInstanceExp::semantic.
fix Issue 1528 - [tdpl] overloading template and non-template functions

- Improve `resolveFuncCall` for integrated function call resolution.
  All of error reporting is done in here.

- Remove `overloadResolve` and `deduceFuncitonTemplate`
  The works was in `overloadResolve` are moved to `resolveFuncCall`,
  and things was in `deduceFuncitonTemplate` are divided to
  `templateResolve` and `resolveFuncCall`.

- Change the name from `overloadResolveX` to `functionResolve`
  It is paired with `templateResolve`.

- Decide 'most specialized' function based on the two `MATCH` values derived from `tiargs` and `fargs`.
  With non template functions, `lastTiargs` is treated as `MATCHexact`.

----
The bug that is fixed at the same time:
fix Issue 9596 - Ambiguous match is incorrectly hidden by additional lesser match

  The change in test/runnable/template9.d is related.