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.
Merge branch cucumber:master into brasmusson:summary-printout
Merge pull request #536 from brasmusson/summary-printout

Merge pull request #536 Print summary at the end of the run.
This fixes #195. Update the History.md.