TR: type inference for polymorphic keyword functions

This PR adds type inference for polymorphic keyword functions and also allows PolyDotted functions to have keyword arguments.

One known issue: error messages for polymorphic kw function inference failures are not ideal, but fixing that requires more thought. I think the inference failure messages needs a general overhaul first.