Introduce a ViolationFormatter

The feature introduced with #700 is really awesome but the violation message wasn't really nice to output to a API client (and without indicating the name of the failling param). I introduced a new ViolationFormatter for allowing the customization of the violation message.