Revise parser to use generated code

This approach brings us into conformity with the [spec](http://www.w3.org/TR/n-quads/#sec-grammar). It slows down parsing by a factor of 5, but we are being more careful so I think this is reasonable. There is some possibility that working in byte space instead of rune space would speed this up, but this would be at an increased complexity cost in the ragel grammar - at the moment we are leveraging the language to do that work for us with some allocation costs as a result.

There is some risk that this change will break queries, but that should be addressable and the short term pain will IMO be worth the effort.