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`.
Provided it is not an iterable, the use of a type annotation implies that we will need to unwrap. With type annotation `UnwrapValidatedValue ` becomes in many cases irrelevant (think `Optional<@Foo String>`). It is most useful pre Java 8 or in the case where the type to unwrap is not having some type argument (JavaFX types).