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
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.
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.
Expose Scenario id to step definitions

Extend the Scenario interface with the method getId(). Then it is
avialable to step definition through the Scenario argument to hooks.
The scenario id is esentially <feature name>;<scenario name> or
<feature name>;<outline name>;<example group name>;<example row number>.
Let the TestNG runner handle strict mode correctly

In strict mode pending or undefined steps should make the TestNG runner
fail. Also remove the duplicate printing of the summary.
Changed the default output appender to be a PrintStream

Previously the default output was an OutputStreamWriter. Since this is buffered
it resulted in test output being buffered making watching the test output in
real time impossible. Now we use a PrintStream which is the type that the
System.out stream is anyway, while still retaining the fix intoduced to make
the Appender's close() method a no-op.
Added test that ensures that output to System.out is not buffered
Merge pull request #721 from orionhealth/make_standard_out_non_buffered

Make standard out non buffered
Adding the non-buffered standard out to history
Blank linke to get travis to build again
Disclose that line filters are applied to all feature paths