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`.
> We should verify that the right exception is returned here.

The test will fail if `ValidationException` is not thrown. Unless you have something else in mind for "the right exception".