HV-925

I guess it is time to get some more eyes onto this. In its current state all scenarios as defined per issue work. There are still some fugly things in there, but the problem lies more and more in a) the size of ValidatorImpl and b) the mutability of ValueContext and the need to juggle the values of this context. 

#ace9b333b6feb29514cd1904c15fa069aee6eb5e is a bit commit, but a lot of the changes are based on the introduction of `ValidatedValueUnwrapMode` which needs to trickle through all layers of the metadata. `ValidatorImpl` and `ConstraintValidatorManager` contain the most interesting changes.

I also decided to start naming test cases slight differently. In particular I started to use '_' instead of camel casing. Thoughts?