Add default feature path, default glue and default formatter once

The RuntimeOptionsFactory should add default feature path, default glue
paht and default formatter once, not once per inheritance level.
Remove the unique glue work around from TestNGCucumberRunner
Add new hooks for global level (@BeforeAll and @AfterAll) that run only once before all and after all existing features/scenarios. Unit test and cucumber test to cover the new hooks and the running order between hooks.
An execution flow with the new hooks looks like this:
1 - @BeforeAll hook(s) (runs before all features once)
2 - @Before hook(s) (no change, same behavior - before every scenario or tagged scenarios)
3 - @After hook(s) (no change, same behavior - after every scenario or tagged scenarios)
4 - .... 2 and 3 for all scenarios in a feature
5 - @AfterAll hook(s) (runs once after all the features are run)

As test for the new hooks see/run:

cucumber.runtime.java.hooks.RunWithAllHooksTest
cucumber.runtime.java.hooks.HooksStepDefs
test\resources\cucumber\runtime\java\hooks\feature-1.feature
test\resources\cucumber\runtime\java\hooks\feature-2.feature
Added junit tests and cucumber tests for new code
Add new hooks for global level (@BeforeAll and @AfterAll) that run only once before all and after all existing features/scenarios. Unit test and cucumber test to cover the new hooks and the running order between hooks.
An execution flow with the new hooks looks like this:
1 - @BeforeAll hook(s) (runs before all features once)
2 - @Before hook(s) (no change, same behavior - before every scenario or tagged scenarios)
3 - @After hook(s) (no change, same behavior - after every scenario or tagged scenarios)
4 - .... 2 and 3 for all scenarios in a feature
5 - @AfterAll hook(s) (runs once after all the features are run)

As test for the new hooks see/run:

cucumber.runtime.java.hooks.RunWithAllHooksTest
cucumber.runtime.java.hooks.HooksStepDefs
test\resources\cucumber\runtime\java\hooks\feature-1.feature
test\resources\cucumber\runtime\java\hooks\feature-2.feature
Added junit tests and cucumber tests for new code
Add new hooks for global level (@BeforeAll and @AfterAll) that run only once before all and after all existing features/scenarios. Unit test and cucumber test to cover the new hooks and the running order between hooks.
An execution flow with the new hooks looks like this:
1 - @BeforeAll hook(s) (runs before all features once)
2 - @Before hook(s) (no change, same behavior - before every scenario or tagged scenarios)
3 - @After hook(s) (no change, same behavior - after every scenario or tagged scenarios)
4 - .... 2 and 3 for all scenarios in a feature
5 - @AfterAll hook(s) (runs once after all the features are run)

As test for the new hooks see/run:

cucumber.runtime.java.hooks.RunWithAllHooksTest
cucumber.runtime.java.hooks.HooksStepDefs
test\resources\cucumber\runtime\java\hooks\feature-1.feature
test\resources\cucumber\runtime\java\hooks\feature-2.feature
Added junit tests and cucumber tests for new code
Add javadoc
As per Aslak's comments
Update clojure version to 1.6.0
Set version 1.1.7-SNAPSHOT in AndroidManifest and example pom's

Some example pom's already had the version 1.1.7-SNAPSHOT.
Add the --all flag to be able to download the android-8 platform
Update the android-sdk used on Travis

The android-sdk r21.1 does not recognize android-8 anymore, not even
with the --all flag. When using the latest version, r22.6.2, then the
update sdk command needs to explicitly specify build-tools (with a
specific version), and answer y to a question about license.
Only include executed scenarios and steps in the JSON output

Do not include the Scenario Outline and Examples given as information
before the execution of the instantiated scenarios from the outline.
This unified the JSON output from Cucumber-JVM regardless of the feature
is executed by the command line runner, the JUnit runner of the TestNG
runner. The JUnit runner differs from the other by not sending the
Scenario Outline and Examples as information to the formatters before
executing the instantiated scenarios from the outline, so this commit
only affects the output from the command line runner and the TestNG
runner.
Complete rewrite of the Guice module: Adds Cucumber scenario scope to the Guice scopes available for use in your test code.
Fix typo in documentation.
JUnitFormatter: use ascending numbering of outline scenarios

Currently the JUnitFormatter use descending numbering in the names of
the instantiated scenarios from scenario outlines, which seems a little
unnatural. Because the JUnitFormatter relies on calls to the examples
method to determine the number of instantiated scenarios, the numbering
is not applied at all when using the JUnit runner. Change the
JUnitFormatter to use ascending numbering, and make it work also with
the JUnit runner.
 no longer calls
Scala 2.10 and 2.11. Drop support for 2.9.
Load scripts by absolute path rather than relative so that relative require/import from those scripts works
Better error message - why is the jython build failing?
Only load the dsl.py when initializing the JythonBackend

The jython build will fail if a cucumber/runtime/jython/i18n/<i18n>.py
file is loaded before the dsl.py.