HV-905 Providing a global config for auto unwrapping

An early attempt. Any thoughts on the direction?
I still have some doubts about this second part. IIUC, the motivation is to implicitly enable auto-unwrap for `Optional` and JavaFX properties, right? If so, I think this should be expressed more explicitly, e.g. by checking the type. Otherwise, what would happen in cases like this:

    Holder<@NotNull String> myHolder;

Should we really try to unwrap this, just due to the presence of the type annotation? What if there is no unwrapper for `Holder`. The alternative would be to validate "myHolder" just normally, i.e. without unwrapping, ignoring the type annotation. I think I'd prefer that. Let's consider another example (currently not supported yet, but it will be at some point):

    @Valid
    private Tuple<@NotNull String, @NotNull String> myTuple = ...;

I think we agree it makes no sense to auto-unwrap "myTuple" just due to the presence of type parameters, whereas those should be applied during cascaded validation. Thus I feel type annotations should cause no unwrapping by themselves. What do you guys think?

Btw. what happens in this situation:

    @NotNull
    Optional<String> myString;

Should this not also be subject to auto-unwrapping?