Introduce a ViolationFormatter

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