Refactored some of the core functionality into a TestRunner and ConsoleReporter.