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.
So [filter](https://docs.python.org/2/library/functions.html#filter) does magic if you use `None` as the first argument, and will give you the same results as this. Assuming we never have commit's with an SHA of `''`.