Ability to have custom reporters

I added the ability to use custom reporters. I only created one default one which matches exactly what it used to print.

I also created a test that tests to make sure that the custom reporter works as expected.