Refactor to allow for other types of reporters.

This branch is to allow support for other tools like bitbucket, stash, gerrit.