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 find it dodgy to just return the last one. I think we really should differentiate here and check the `annotatedType`. We can differentiate between `Itertable`, `Map` and everything else. In the latter case we pretty much support only the case where we have a single annotated type, right? We could log an info message in case there are multiple and ignore any constraints.