added failure tracking, stats logging at end. simplified test runner by moving logic into Failure.java