Further work on GHC wrapping.

Mainly fixes issues from the first commit.
So far, only GHC 7.8.3 is fixed! Other versions need to be patched
first.

A major change is the introduction of a patch for GHC. The patch makes
GHC evaluate a NIX specific environment variable. The environment
variable is used to hide NIX specific configurations. The idea is to
integrate GHC in NIX without passing NIX specific parameters to GHC.
That reduces the risk of interference between the NIX specific
parameters and e.g. parameters set by a tool.

ghcWithPackages now comes with a script to configure a shell environ-
ment. The script will be installed in /etc/profile.d/ghc-env.sh, and is
sourced automatically by some shell environments.