concrete functor and monad transformers

#6Typeable instance for promoted Identity constructor

In an earlier pull request, I added a Typeable instance for Identity for compatibility purposes, since base-4.8.0.0 defines one. It turns out I forgot about another instance that base-4.8.0.0 defines but transformers doesn't. Namely, a Typeable instance for the promoted data constructor 'Identity (as opposed to the data type Identity, which currently does have a Typeable instance).

All that needs to be changed to enable this is adding the language extensions AutoDeriveTypeable, DataKinds, and PolyKinds if using GHC 7.8. It might seem weird to need to enable AutoDeriveTypeable since there's already an explicit deriving Typeable clause, but it's required due to a bug in GHC 7.8 (https://ghc.haskell.org/trac/ghc/ticket/9111).

(Also, since there's an explicit deriving Typeable clause, this bug (https://ghc.haskell.org/trac/ghc/ticket/9575) won't occur.)

My branch here (http://hub.darcs.net/RyanGlScott/transformers) implements these changes, as well as some minor fixes to make transformers build on GHC < 7.10.