Test programmatic error message setting
Add ErrorMessage annotation, generator

Not plugged in yet.
ParserTransformer: add the new ErrorMessageGenerator processor, test it
New DefaultParseRunner

This parse runner, unlike a basic parse runner, collects error messages from
rules.

If the rule does not have a custom error message, "parse error" is returned
instead.
MatchHandler: generify the interface itself, not .match()
Add tests for DefaultParseRunner

Now confirmed that error messages make their way into reports.