More allDistinctTyVars from TcDeriv to Type

Just a minor refactoring
In TcValidity.checkAmbiguity, skolemise kind vars that appear free in the kinds of type variables

This was shown up by Trac #9222.