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`.
Could you create separate classes for the different test cases? Using one and the same makes it much harder to follow the routine when debugging through the code, also it may create correlations between different test cases.