Refactor coverage, loggers, and runners. Split loggers out and added an
in memory logger which saves the test results in test.result.