Add Data and Typeable instances for many types exported by Cabal.

Note: this adds an orphan Data instance for Data.Version. A fix has been
proposed upstream.
Merge pull request #1243 from davidlazar/master

Data/Typeable instances
Make 'cabal install Cabal' work again.

Restores old behaviour broken in 7fa7d17862e39635012aaf749f9872216e9b9023.
Fixes #1245.
Merge pull request #1246 from 23Skidoo/cabal-install-Cabal

Make 'cabal install Cabal' work again.
cabal-install: put the Paths_cabal_install.hs and Paths_Cabal.hs in place as expected
disable hackage's preferred-versions (as we don't use it when merge ebuilds)

hackage.haskell.org/00-index.tar contains preferred-versions for some interesting
packages. For now it's 'base-3'.

Otherwise depends generated by hackport differ from ones pulled by ./Setup.hs.
cabal/cabal-install: renamed D.C.Exception -> D.C.ExceptionCI to avoid clash with Cabal's one

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Fix error messages with "cabal update" -> "hackport update" Same fix as marty.rosenberg@gmail.com once did for cabal-install-0.8.2, which we now are replacing.
cabal/cabal-install: renamed D.C.Exception -> D.C.ExceptionCI to avoid clash with Cabal's one

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
forbid cabal to check for self updates