* Change the default type parameter constraint and default to unknown from {}
* Relax unknown checking outside of strictNullChecks a bit
* Increase strictness on index signatures with type `unknown` so inference doesnt change surprisingly
* Remove redundant switch
* Provide better services for incomplete generic calls
* Use clearer name
* Remove `inferredAnyDefaultTypeArgument` and `getBestGuessSignature`; have `resolveSignature` always get the best signature if !produceDiagnostics
* Update names and comments
i.e. use "var v: string" instead of "(var) v: string".
The parens case should only be used when we're using an english description instead of
an actual language construct.