Add rerunFailingTests option for maven surefire to rerun failing tests i...

Add rerunFailingTests option for maven surefire to rerun failing tests immediately after they fail. Each single test method now maintains a list of its runs. DefaultReporterFactory now contains a few maps between test and the list of all its runs. If a test passes in any of its reruns, the build will be marked as successful and the test will count as flake.
You could condense this enum type and the ReportEntryType by adding private fields with getters for logPrefix and xmlTag/flakyXmlTag/rerunXmlTag respectively and add a private constructor to populate them:
```
    static enum TestResultType {

        error("Tests in error: "),
        failure("Failed tests: "),
        flake("Flaked tests: "),
        success("Success: "),
        skipped("Skipped: "),
        unknown("Unknown: ");

        private final String logPrefix;

        private TestResultType( String logPrefix ) {
            this.logPrefix = logPrefix;
        }

        public String getLogPrefix() {
            return logPrefix;
        }
    }
```