Type checking for tagged template expressions

With this PR, we now support

* Overload resolution when the tag of a tagged template has multiple signatures.
* Type argument inference when performing overload resolution on a signature.