Left-recursion demo

Parser combinators remain my parsing strategy of choice because of the
simplicity of writing a new parser, but they have the notable drawback
of being useless for recursive descent parsing. Loco will detect
left-recursion at Grammar instantiation time. A way around this would be
to offer a dedicated LeftRecursionParser class, but until that time,
here's the quick hack.
Fix BNF failure

This thing was throwing a ParseFailureException. The problem was that it
was set up to only recognise "\n" as a line ending in the input string.
Solution: recognise either "\r" or "\n" as a line ending. (That means
"\r\n" counts as two line endings, but in this particular case we don't
care about empty lines so no big deal.)