Print summary at the end of the run

Print the same kind of summary at the end of the run as Cucumber-Ruby:
x Scenarios (x1 failed, x2 skipped, x3 pending, x4 undefined, x5 passed)
y Steps (y1 failed, y2 skipped, y3 pending, y4 undefined, y5 passed)
XmY.YYYs

The new class SummaryCounter is used by the Runtime class to collect the
data for the summary. The SummaryPrinter then let the SummaryCounter
print the summary before the errors and the snippets. The printout from
the SummaryPrinter is moved to after the printout from the formatters to
make the summary printed after the progress or pretty printout.
Use only jdk1.6 compliant constructs in the tests
Tell don't ask when printing summary at the end of the run

Let the SummaryPrinter tell the Runtime to print the summary instead of
asking for the SummaryCounter.

Put back the check for an emtpy list of backends in the Runtime ctor,
which was removed by mistake. Add test to check that a CucumberException
is thrown when the list of backends is emtpy.

Use Long for duration arguments in SummaryCounter, to conform to the
return type of Result.getDuration().
Minimize the number of constructors in the Runtime class

To minimize the number of constructors in the Runtime class, and to
handle that by default a UndefinedStepTracker is created and then
injected both into the Runtime and the RuntimeGlue, create a factory
method as the main entry. Expose additional conveniece factory methods
for testing in the core module in RuntimeTest.
Localise the UndefinedStepTracker in the Runtime

Localise the UndefinedStepTracker in the Runtime and remove that
argument from the constructor. Use that the optionalGlue argument is
null, as the cue to let the Runtime create the default RuntimeGlue.
When the optionalGlue argument is not null, the glue injected with that
argument will be used by the Runtime.
Add RuntimeOptions.isMonochrome(), rm Runtime factory methods

Add RuntimeOptions.isMonochorme(), since commit 65f3bd6 on the master
branch change RuntimeOptions to have private fields and getters.

Basically revert commit c8feb10. Since the new android support on the
master banch sends backends to the Runtime constructor, which
previously only was done in tests, the change to use factory methods in
Runtime no longer make sence.
Make it possible to inject a glue when creating a Runtime

To aid testing, make it possible to inject a glue when creating a
Runtime. Also add a test specify that a CucumberException is thrown
if no backends are found (or an emtpy collection of backends is
injected).
Align the step results in the JUnit test result files

Adjust the number of . separating the step text from the step result,
so that the results are aligned.
Add tests for the JUnitFormatter to disclose issues

The main issue is that the JUnitFormatter does not handle failures
in the before and after hooks properly. To add flexibility the tests
also specify that the JUnitFormatter should handle both all-steps-first
execution and one-step-at-the-time execution.
Fix issues in the JUnitFormatter

Change the JUnitFormatter to handle failures in the before and after
hooks properly. Also change the JUnitFormatter to handle both
all-steps-first execution and one-step-at-the-time execution.
Revert to all-steps-first scenario execution

To fix the missmatch between the PrettyFormatter from the Gherkin
library and Cucumber-JVM, by reverting the scenario execution to
all-steps-first execution as in Cucumber-JVM 1.1.2. This is possible
since the JSONFormatter in the Gherkin library in Gherkin 2.12.0
supports all-steps-first execution.
Add a test case for the PrettyFormatter

Add a test case for the PrettyFormatter to verify that the pretty
formatter aligns the location strings correct, when a scenario is
executed with Cucumber-JVM.
Upgrade dependencies
Revert version bounces
Merge pull request #556 from brasmusson/junit-formatter-fixes

Merge pull request #556 JUnitFormatter: Fix indentation, hook handling
and support all-steps-first execution.
Update the History.md
Merge pull request #557 from brasmusson/all-steps-first-execution

Merge pull request #557 Make the PrettyFormatter work by revering to
all-steps-first execution. This fixes #491 and the other reports of
IndexOutOfBoundsException when using the PrettyFormatter.
Update the History.md
Merge cucumber:master into brasmusson:pretty-formatter-test

Now when cucumber-jvm has reveted to all-steps-first execution, the
test case for the PrettyFormatter should pass.
Make field final
Merge pull request #544 from brasmusson/pretty-formatter-test

Merge pull request #544 Test case for the PrettyFormatter
Update the History.md
Merge branch cucumber:master into brasmusson:summary-printout