Allow type classimplicit parameterequality constraints to be
used as types with the special kind constraint. Also generalise the
(ctxt => ty) syntax so that any type of kind constraint
can occur before the arrow.
A version constraint on a package. Different from
ExeDependency and Dependency since it does not
specify the need for a component, not even the main library. There are
a few places in the codebase where Dependency was used where
PackageVersionConstraint is not used instead (#5570).