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 fireTestStarted/Finished for undefined/pending steps in strict mode

The JUnitReporter should for each call to Result either call
fireTestIgnored, or call fireTestStarted and fireTestFinished on the
step notifier. In strict mode undefined and pending steps should be
treated as failed steps, so fireTestStarted and fireTestFinished should
be called on the step notifier.
Correct JUnit notification for background steps

The background steps are copied in the ExecutionUnitRunner for each
scenario in a feature with background. This is done to make them unique
for each scenario, so that the JUnit notification later will not be
ambiguous. When the background steps are executed, it is the original
ones that are executed. Therefore the background steps need to be
'converted' from the original steps to the copies made earlier, when
performing the actual JUnit notifications for an execution unit
(scenario).
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
touch to kick build
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.
dirty spring cukes feature didn't fail without @DirtiesContext annotation which is supposed to test
made BellyStepdefs sideffect-free so that they don't need @Dirty annotation and do not clash with dirtyCukes.feature
renamed features to highlight their focus
Moved the check for empty step name to take place at step generation instead of example table value substitution
Disclose that spring step def injection does not work