reverse imports between Data.Functor.Classes and Data.Functor.Identity

In preparation for moving Data.Functor.Identity to base.
drop compatibility with base-1.x
add mapLift and runErrors to Control.Applicative.Lift, with some doc comments
make Data.Functor.Identity conditionally exposed

from Herbert Valerio Riedel:
Starting with base-4.8.0.0, Data.Functor.Identity will be provided by
`base` rather than `transformers`. In order to make the transition
smoother (and to make it possible to bootstrap GHC 7.9/7.10 with GHC
7.6+ w/o having to complicate GHC's build-system), `transformers`
continues to provide `Data.Functor.Identity` if compiled with a compiler
other than GHC 7.9 or later.

See also https://ghc.haskell.org/trac/ghc/ticket/9664
defer AutoDeriveTypeable to GHC-7.10

AutoDeriveTypeable doesn't work properly in GHC-7.8:

https://ghc.haskell.org/trac/ghc/ticket/9575
remove AutoDeriveTypeable from Data.Functor.Identity

This module has moved to base in GHC.7.10.
update for 0.4.2.0