Handle interleaved steps and results in the java PrettyFormatter

The java PrettyFormatter has relied on that the call to step() for all
steps in a scenario, come before any call to match() for any step in
the scenario. In Cucumber-JVM version 1.1.3 the call sequence was
changed so this assumption is not true anymore.

To handle interleaved calls to step(), match() and result(), the java
PrettyFormatter is changed to also store the received match and result
data in a list until the end of the scenario. Then the indentations for
the step definition locations are calculated, and the whole scenario is
printed at once.

The final formatted result is not changed, but for long running
scenarios the delay of printing until the end of the scenario will be
notable. Since the printing is deleyed until the end of the scenario,
the printing of the current step as executing is also removed.
Relax the Pretty Formatter spec, executing output not needed

Update the rspec spec for the pretty formatter to explicitly mark the
end of the scenarios with a call to Formatter.eof(). Relax the spec to
allow for but not require the "executing" output for the currently
executing step. The java Pretty Formatter is not printing those, since
it needs to wait to the end of the scenario to be able to calculate the
indentation for the step definition locations for the scenario.
Merge gherkin:master into brasmusson:java-pretty-formatter
Merge branch 'java-pretty-formatter' of github.com:brasmusson/gherkin into brasmusson-java-pretty-formatter
Added generated file