The JSONFormatter should record before hooks in the next scenario

For all but the before hooks executed before the first scenario, the
JSONFormatter records them for the latest started scenario, instead of
the scenario be to executed next. The before hook data is shifted up
one scenario, so generally the first scenario will record two hook
executions for each before hook, and the last scenario none.
World function implemented properly
added idea generated directories to .gitignore
bumped missed versions to 1.1.6-SNAPSHOT
bumped gherkin version to 2.12.2-SNAPSHOT
added stub implementation for new formatter methods
Merge branch 'master' of https://github.com/cucumber/cucumber-jvm
World can now receive both a build and dispose function
Added plus and period to escaped characters
Add bounds checking with sensible error to UnderscoreFunctionNameSanitizer
Added explicit check for empty scenario outline example steps after tokenisation
* fixed several bugs in the AndroidTestReporter formerly known as AndroidReporter
* restructured project to be more maven compliant
* added dependencies for testing purposes
Fix for DataTable as parameter in Jython steps

If the argument is a DataTable it is converted to the raw form (List<List<String>) then converted to PyArray so you can pass it as a PyObject
Fix exception in snippet generator

This fixes a StringIndexOutOfBoundsException that would occur in
CamelCaseFunctionNameSanitizer for function names with multiple spaces,
that is for step definitions with more than one capture group.
Improve CamelCaseFunctionNameSanitizer

Function names are now correctly formatted if they contain acronyms. The
name sanitizer also will not change the case of words that are already
pascal or camel case in the input.
DataTable parameter fix
Added DataTable scenario
Added DataTable step definition
Merge branch 'master' of https://github.com/SierraGolf/cucumber-jvm into SierraGolf-master
Update to latest gherkin