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`.
You need to run the test in JDK 1.8u20. You'll get a `java.lang.ArrayIndexOutOfBoundsException`.

Maybe it's a JDK problem since the test runs successfully in JDK 8u5 and 8u11.