Add a function that translate old options to the new forat

Keep backward compatibility
If no language is given as an option, revert to using haskell

This is for backward compatibility
Merge pull request #82 from gdetrez/translate-old-options

Add a function that translate old options to the new format
Add options to derive Data,Typeable,Generic to Haskell backend
Derive `Read` for newtype decls in Haskell backend

This relates to BNFC/bnfc#84 . Currently the definition for Ident is:

    newtype Ident = Ident String deriving (Eq,Ord,Show)

This commit changes this definition to:

    newtype Ident = Ident String deriving (Eq,Ord,Read,Show)

This allows users to translate Ident's from one language to another,
e.g:

    LangX.IdentExp ident -> LangY.IdentExp (read (show ident))

One caveat is that is that ther newtype definitions will also derive
Read, though I can't comment on the significance of this?
Strict version of 'readFile' in BNFC.Utils for Windows compatibility
added deepseq dependency to 'units-tests' test suite
Merge deriveGeneric and deriveDataTypable to --ghc flag

--ghc specifies to use ghc-specific language extensions.
Merge pull request #83 from JohnLato/master

Add a `--ghc` option to derive Data,Typeable,Generic to Haskell backend
Merge branch 'read-derivation' of https://github.com/robstewart57/bnfc into robstewart57-read-derivation

Conflicts:
	source/src/BNFC/Backend/Haskell/CFtoAbstract.hs
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
Merge pull request #86 from robstewart57/upstream

Strict version of 'readFile' in BNFC.Utils for Windows compatibility
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)