HV-905 Providing a global config for auto unwrapping

An early attempt. Any thoughts on the direction?
> In which real world case will a constraint match for the wrapper and the wrapped type? 

I am not going to guess on what constraints one could come up with. IMO we should not make assumptions in this regards. Also `@NotNull/@Null` are probably one of the most used constraints. At least `@NotNull`. 

What if case 8 would be made an exceptional case? This would, however, require to have some way for the user to resolve the exception by explicitly applying the constraint on the wrapper. The opposite to `UnwrapValidatedValue`.

> Actually it's what we also to as of today.

Interesting. That seems wrong. This is also not what tests like `JavaFXPropertyValueUnwrapperTest` and `OptionalValueUnwrapperTest` imply.

> It's what we do today as well for e.g. @Min(3) IntegerProperty; the wrapped type is validated.

only if the global unwrap flag is set, provided we go this route. If it works right now, it is not what I would have expected.

> From looking at this code, that's exactly what a user will expect.

Why? Because you already put meaning into `IntegerProperty`. It only makes sense if you know what  `IntegerProperty` is.

> They won't expect a constraint declaration error (due to applying @Min to the Optional itself) and they won't understand why they should specify @UnwrapValidatedValue although the intention of that code is totally clear.

I think they would. Perfectly clear is `@Optional<@Min Integer>`.

Also w/o making case 8 an exceptional case, people might think they put the `@NotNull` onto the wrapped value (after all the un-wrapper is registered). However, they will validate the value itself (which is the right thing from a HV/BV point of view).