add tests for type parameter deduction by argument types
comment fixes
report compile notes on template function instantiation failure
remove duplicate semantic analysis and error reports
propagate instantiation errors as a series of compile notes
instantiation does not have to invoke analysis but type resolving must be called
unify type parameters in a template class
add double-analyze barrier and do not delay function body analysis