Add an optional argument to change Makefile name

Now, bnfc -mMyMakefile should generate the Makefile in MyMakefile
instead of the default (Makefile.)

Related changes:
- add a long version of the option (--makefile)
- convert all backend to the new backend type:
    SharedOptions -> CF -> MkFiles())
- Refactor option parsing: the previous version would not allow optional
  arguments. The vew version is simpler but does not enforce constraints
  anymore (e.g. it wont crash if one tries to combine --java and --alex2)
- Add instruction on how to run the test suite

Close #75
fixes for lexer_initialize using yyreset()
Add Applicative and Alternative instances to Err [Fixes #94]
Merge pull request #87 from gdetrez/issue#75

Issue#75: add an optional argument to change the makefile name
Merge pull request #91 from cwelton/CLexerFix

fixes for lexer_initialize using yyreset()
Merge pull request #95 from adamse/applicative-err

Add Applicative and Alternative instances to Err [Fixes #94]
[Latex] Correctly escape '^' characters (fix #90)
[OCaml] Correctly normalize category names (fix #92)
Merge pull request #97 from gdetrez/issue#90

[Latex] Correctly escape '^' characters (fix #90)
Merge pull request #98 from gdetrez/issue#92

[OCaml] Correctly normalize category names (fix #92)
fix wrong identifier that can't be compiled Lex*.mll when using user defined tokens.
Merge pull request #101 from runoshun/ocaml-be-lex-typo

fix wrong identifier that can't be compiled Lex*.mll
Add missing BNFC.Backend.Base to cabal file
Add a separate test suite for system tests

First, some backend (cnf) require bnfc to be installed and not just
build, which doesn't work with `cabal test`.
Second, this way, the system tests are not included in the distributed
bnfc package and don't clutter the cabal file.
Make system test suite fail if at least one test fails
Update gitignore for cabal sandboxes
Use HTF in the system tests and fix the java tests
Remove system tests from source/
Cleanup shelly dependency in unit tests
Remove regression tests from source/