Work on Haskell GHC wrapping.

- unify wrapper build by standard ghc-wrapper and by ghcWithPackages
- add caching of GHC packages search into ghc-wrapper
- add scripts to run command in an installed ghcWithPackages environment
- add flag for cabal.mkDerivation to automatically wrap binaries
I'm not sure whether I've understood the code correctly, but if this directory is actually created by the wrapper, who is going to erase it afterwards?