Change processing exception handling, part 1

Rather than overriding doException() in reports, embed an ExceptionProvider into
the processing message itself, and create a .asException() method which just
returns an exception with itself as an argument.

Also create exception for instance validation processing.

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>
Change processing exception handling, part 2

First, add tests.

Second, in AbstractProcessingReport, instead of throwing an exception itself,
throw message.asException().

Third, remove the hack into SyntaxProcessor's subreports.

Signed-off-by: Francis Galiegue <fgaliegue@gmail.com>