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`.
What I mean is the usage of a type variable on a property of a custom iterable:

    public class MyList<V> implements List<V> {
        public V getDefault() { ... }
    }

    public class MyListUser {
        @Valid
        private MyList<@NotNull String> myList = ...;
    }

When validating `MyListUser`,  the `@NotNull` constraint would have to be applied to the "default" property in the course of the HV-902 validation. But it's a rather exotic use case and I agree to handle it separately.