HV-877 Supporting type use constraints on type arguments

This applies to `PropertyMetaData`. After your feedback, I'll continue the work on parameters and return values and I'll extend `ParameterMetaData` and `ReturnValueMetaData`.
WDYM by "positional thing" exactly?

Yes, the same type arguments can be used (in its declaring type) multiple times, but there'd be only one set of constraints defined per type argument on the usage site. So it probably would have to be a `Map<TypeParameter, Set<MetaConstraint<?>>`. Then when validating a property or method parameter etc. which is of a generic type, we'd apply the constraints stored in the map for that type parameter in addition to any constraints declared on the element itself.