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`.
So for e.g. `List<@Email String>` one wouldn't have to add `@Valid` explicitly? What's the motivation for this? This seems a bit different from the existent behavior.