Make ConstraintParameterException accept a ViolationMessage instead of a string. (For a short transition period, probably both, just like ViolationMessageRenderer::render.) The string message passed to the superclass constructor can probably just be the message key – it should never be seen anyways.
Note that this requires T185999: Make ViolationMessage serializable, since CPEs are serialized and deserialized by SparqlHelper in the regex cache.
- inject serializers
- preparation in tests
- [preparation in ConstraintParameterException](https://gerrit.wikimedia.org/r/411304)
- [preparation in DelegatingConstraintChecker + tests](https://gerrit.wikimedia.org/r/411305)
- [preparation in SparqlHelper](https://gerrit.wikimedia.org/r/411306)
- [preparation in CheckConstraintParameters](https://gerrit.wikimedia.org/r/411307)
- [add support in ConstraintParameterException](https://gerrit.wikimedia.org/r/411308)
- minor ViolationMessageRenderer fixes 1, 2
- [update ConstraintParameterParser](https://gerrit.wikimedia.org/r/411309)
- evict old-style CPE serializations