make all Functor instances assume Functor

Because Monad isn't a subclass of Functor or Applicative, this means
we need to assume both Functor and Monad in the Applicative instances
for ErrorT, StateT and RWST.
Added Applicative and Alternative instances for (Either e)
add MaybeT transformer

bump minor version number
add IdentityT transformer
add Control.Monad.Trans.Identity to .cabal file
doc adjustments
tweak lifting of Identity and Maybe transformers
remove Monad constraint from Monad instance for ContT (suggested by Antoine Latter)
bump version to 0.1.5.0
rename modules to avoid clash with mtl
Control.Monad.Identity -> Data.Functor.Identity
Control.Monad.Trans -> Control.Monad.Trans.Class, Control.IO.Trans.Class
documentation tweaks
add constant functors and functor composition
delete superfluous CPP extension
upper bound on base
add Data.Functor.Product
add Alternative instance for Product
add Alternative instance for Compose
add some documentation
cope with move of Either instances to base package
change maintainer to ross@soi.city.ac.uk