HV-877 Supporting type arguments annotations constraints

This is a bit messy, but it’s just to show the direction and to get your feedback.

Nested unwrapping is also supported. The following shows what I have tested:

    List<@NotBlank String>

    @UnwrapValidatedValue
    Optional<@NotBlank String>

    @UnwrapValidatedValue
    Optional<@UnwrapValidatedValue @NotBlank StringProperty>

    Map<String, @NotBlank String>