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.