Refactor TestGroup to not report before/after functions that were not run, and
to report them by the name of the function that was found and used
Factor the test running functionality out of TestGroup and into new class TestRunner