[improve] Allow psparam == NULL on TemplateParameter::deduceType

This will avoid some unnecessary symbol declaration like for just type matching.
Remove Scope::parameterSpecialization

It becomes unnecessary by using `Type::reliesOnTident()`
[Refactoring] Add another version of TemplateParameter::matchArg and use it
Merge pull request #2078 from 9rnsr/refactor_ded

Refactoring template parameter deduction code