HV-925 Formatting
HV-925 Implementing unwrapping rules

- Adding a boolean flag to @UnwrapValidatedValue to allow to explicitly specify unwrapping or skipping of unwrapping
- Introducing ValidatingValueUnwrapMode used by metadata to distinguish between the different potential ways of handling unwrapping of validated values
- Updating all levels of metadata and metadata builders to make use of ValidatingValueUnwrapMode
- Updating test, splitting some of them into smaller ones
HV-925 Improving test
HV-925 Making sure a copy of the property path is made when creating constraint violations
HV-925 Adding more method to Cascadable to avoid cast. Moving unwrapping into getValue
HV-925 Updating docs and docs examples