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
Merge branch 'master' of https://github.com/guyburton/cucumber-jvm into guyburton-master
Refactored SnippetGenerator.

There was too much parallel effort in the CamelCase and Underscore
implementations, so the new structure shares most of the logic
and implements the different logic in a Concatenator.

I also made sure IntelliJ doesn't break because of the new
scenario lifecycle methods in the gherkin formatter interface.
Attribution for #596