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`.
Seeing the builder here, have we considered actually what should happen in case like this:

    public class Parent {
        public List<@NotNull String> getNames() { ... }
    }

    class Child extends Parent {

       @Override
        public List<@NotEmpty String> getNames() { ... }
    }

On first thought I'd say the same rules should apply as for constraints on return values / parameters in inheritance hierarchies outlined in the BV spec. I.e. constraints on return values add up, whereas no re-finement should be allowed for constraints on method parameters. But we should put some more thought into it, probably using a separate HV issue.