HV-905 Providing a global config for auto unwrapping

An early attempt. Any thoughts on the direction?
> On the other hand, `Optional<@NotNull String>` seems to me clear in its intention.

`@Min(3) IntegerProperty myInt` is also perfectly clear in its intention, but there is no type annotation. Should this also work out of the box?

As said before, unwrapping and type annotation constraints are two independent things, these two constructs just can be used together in some cases. Unwrapping is done for "value objects" which represent a property (or parameter etc.) value which just happens to have some wrapped representation. Constraints my be applied to them using the traditional way or via type annotations (if the wrapper is a generic type), and the configuration whether they are subject to auto-unwrapping or not should be done consistently for both cases.

Thus performing auto-unwrapping or not just based on the presence of type annotations doesn't really cut it. The existence of a matching unwrapper is more suitable IMO (in conjunction with a global switch to enable/disable, where we can argue about the default) as it covers both cases.

> The Tuple example is a bit off, since we don't support it either way.

No, it's not off. At some point we will support this case, so we should now make sure to find rules which still fly when we do so, i.e. rules which are reasonable, consistent and comprehensible. Auto-unwrapping in some cases where type annotations are present but not in others does not satisfy these criteria to me.

Hence my suggestion to only control this by existence of unwrappers. This works now and will still work in a comprehensible manner when we support type annotation constraints in more places such as the tuple example.

> If we have @Valid and type annotation we have cascaded validation as we should not auto-unwrap. W/o @Valid we try to auto-unwrap. WDYT?

What about `@Min(3) IntegerProperty myInt` then? This should work the same way out of the box (or not) as `Optional<@Email String>`.