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`.
+1, no more duplication. Regarding the name `TypeUseAnnotationMetaDataProvider` implies to me somehow that this is "just" an annotation provider for type use. Maybe something like 'AnnotationMetaDataProviderWithTypeUse` is better. I admit though this is a mouth full. WDYT?