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
This seems like a really large diff that goes well beyond fixing build issues specific to Nixpkgs. IMHO, it would be much nicer to have that code integrated upstream than to create a derived version of hdevtools in Nixpkgs.