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?
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