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`.
I'm wondering whether this actually should be a `ConstraintMetaData` / `Cascadable`. Aren't we in the end just interested in the set of constraints?