Re-write the Haskell Platform out of haskell-defaults.nix.

We used to configure library versions for every compiler that corresponded
(roughly) to the Haskell Platform that was current at the time the compiler was
released, i.e. GHC 6.10.4 builds would run with ancient versions of QuickCheck,
HTTP, etc. This whole approach is now gone. The Haskell Platform has no effect
on our default library selection any more; we generally provide the latest
version possible that the respective compiler can build.

To simplify our configuration even further, we dropped all intermediate GHC
releases from all-packages.nix. What remains is a haskellPackages_ghcXYZ set
for the latest version of every major release branch, i.e. GHC 6.10.4, 6.12.3,
7.0.4, 7.2.2, 7.4.2, 7.6.3, 7.8.2, and 7.9.x (HEAD snapshot).

The packages that used to be haskellPackages_ghcXYZ.haskellPlatform exist
now in the top-level as haskellPlatformPackages.VVVV_X_Y_Z. The top-level name
'haskellPlatform' refers to the latest available version, which can also be
installed with "nix-env -i haskell-platform".

Furthermore, there are some new features:

 - Haskell Platform packages no longer have their GHC version baked into the
   package name. This version is superfluous, because a HP release implicitly
   contains a specific version of GHC, so there is no ambiguity.

 - The ghcXYZPrefs settings in haskell-defaults.nix now inherit overrides from
   newer to older compilers, i.e. an override configured for GHC 7.0.4 will
   automatically apply to GHC 6.12.3 and 6.10.4, too. This change has reduced
   the redundancy in those configuration functions.

   The downside is that overriding an attribute for only one particular GHC
   version has become more difficult. In practice, however, this use case
   hasn't occurred yet.

 - The 'cabal' builder has a brand-new argument called 'extension'. That
   function is "self : super : {}" by default, but, users can override it to
   mess with the attribute set passed to cabal.mkDerivation. An example use
   would be the definition of darcs in all-packages.nix:

   | darcs = haskellPackages.darcs.override {
   |   cabal = haskellPackages.cabal.override {
   |     extension = self : super : {
   |       isLibrary = false;
   |       configureFlags = "-f-library " + super.configureFlags or "";
   |     };
   |   };
   | };

   In this case, extension disables building the library part of the package to
   give us an executable-only version that has no dependencies on GHC or any
   other Haskell packages.

   The 'self' argument refers to the final version of the attribute set and
   'super' refers to the original attribute set.

 - Haskell Platform packages always provide the Haddock binary that came with
   the compiler.

Noteworthy bits of information:

 - Haskell Platform 2009.2.0.2 is broken because of build failures in cgi and
   cabal-install.

 - Haskell Platform 2010.1.0.0 is broken becasue of build failures in cgi.
haskell-wxcore: jailbreak to fix build with recent versions of array
haskell-ConfigFile: update to version 1.1.2
haskell-Glob: update to version 0.7.5
haskell-RepLib: update to version 0.5.3.3
haskell-data-lens: update to version 2.10.5
haskell-digestive-functors-aeson: update to version 1.1.8
haskell-esqueleto: update to version 1.4.1
haskell-hledger-lib: update to version 0.23.2
haskell-hledger-web: update to version 0.23.2
haskell-hledger: update to version 0.23.2
haskell-iCalendar: update to version 0.4.0.1
haskell-pandoc: update to version 1.12.4
haskell-shake: update to version 0.12
haskell-statistics: update to version 0.11.0.1
haskell-system-fileio: update to version 0.3.13
haskell-unbound: update to version 0.4.3.1
haskell-hakyll: jailbreak to allow building with network 2.5.x

https://github.com/jaspervdj/hakyll/issues/255
haskell-oeis: jailbreak to fix build with network 2.5.x
haskell-tar: re-generate with cabal2nix