Add commit review tools

This add the ability for tool classes to examine the commit messages of commits in a pull request. It also adds a new `commitcheck` tool that lets one setup a re pattern in an application's `.lintrc` and check commit messages.

The above feature is really useful when you have a process like we have at @freshbooks where we require all commits to reference a bug tracker issue.  By doing this during a pull request we can ensure that all commits are well formed.
It is used in subclass and I didn't want to have different interfaces for different classes.