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 think the documentation and code clearly shows that TypeUseAnnotationMetaDataProvider extends a base AnnotationMetaDataProvider which is sufficient. 

All this requires that you actually open the class and look at the docs and what it extends. Just reading the name it can be ambiguous. I would always try to strive for less ambiguous names. I likes `TypeAnnotationAwareMetaDataProvider` better.