Refactor reporter code

- Throw exception when selected reporter cannot be found
- Allow users to specify reporter with `--reporter` command line flag
Merge pull request #229 from sethmcl/reporter_cleanup

Refactor reporter code