HV-905 Providing a global config for auto unwrapping

An early attempt. Any thoughts on the direction?
> 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. 

That's sounds to me a bit like the typical:"Want to eat the cake and have it". If you enable the automatic unwrapping (something which you proposed in the first place), I expect that you provide unwrappers for the cases where you have a type annotations. If not, something is missing.

> Currently the code will throw an exception. It's saying that you annotated a type argument, but you didn't provide a way for us to get the value.

Sounds reasonable to me

Regarding: 

    @NotNull
    Optional<String> myString;

I guess this will depend. If there is no auto-unwrapping flag the `Optional` instance will be validated. If auto-unwrapping is enabled the string will be validated. This is one of the cases which made me lean against the global flag.