Use ragel

This branch replaces Flex/JFlex with Ragel. This affects the C/Java/Ruby scanners. The JavaScript scanner still uses Jisonlex.

The reason for this change is to overcome the problems described in cucumber/gherkin3#4. Ragel's regular expressions are more poweful than Flex/JFlex, in particular when it comes to negative lookahead.

It looks like Jisonlex doesn't have the same limitations as Flex/JFlex with negative lookahead, so we won't need Ragel for JavaScript. (If we did we'd have to use the unofficial/experimental JavaScript fork of Ragel that gherkin uses).