Add more system test

Add the example grammars as system tests
Add notes on the prolog example grammar
Fix compilation error in java if the grammar uses a category called List
Fix bugs in C++ (no STL)

* Allows grammar with a `List` category
* Allow ' (one single quote) as a terminal
Fix bug in C/C++

* Allows grammar with a `List` category
* Allow ' (one single quote) as a terminal
Fix ocaml bug with category called `List`

Add `list` to the list of reserved words
Add missing module BNFC.Backend.Common.StrUtils to cabal file
Allow multiple example per grammar in testing
Gathering all C-ish examples grammars
Fix link in prolog readme
Remove duplicate LBNF example grammar
Comment CNF example that fails with CNF
Gather all examples under examples/ and prune some duplicates
Add test cases for some of the remaining examples
Minimize the imports from Data.Monoid in Haskell/GADT

This limits the potential name conflicts with category symbols from the
grammar.
Make C++ backend more clever about list rules

It shouldn't assume that the first item in a constructor rule is a non
terminal and accept rules like:

    (:) . [Ident] ::= "," Ident [Ident] ;
Remove some grammar from the tests

- java.cf because it has non unique names
- DefinedRules.cf because it uses a special feature (defined functions)
  which I'm not familiar with.
Fix path to C grammar in regression test
Merge branch 'more-testing'

Contains more automated tests and some bugfixes.