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`.
Should we really have this second constructor? I'd rather add the new argument to the existing one. After all, the info should always be given when instantiating a `ConstraintField`. In those cases where we don't have it yet (e.g. when parsing XML mappings), we should pass an empty set and probably add a TODO marker.