Refactor into rules based system
Prepare for adding a third validator variant by refactoring the existing
system to favor composition over inheritance when reusing individual
tests.
- Add a RulesMessageValidator that uses LineRule and CommitRule tests to validate a commit message.
- Reimplement GerritMessageValidator and GitHubMessageValidator as RulesMessageValidator subclasses.
- Add a ValidationFailure class to describe detected errors
- Update MessageValidator to expect ValidationFailure responses
Bug: T339307