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
Make `Data.Functor.Identity` conditionally exposed

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