Generalize GHC to haskellCompiler in the Haskell infrastrucutre of Nix.

That PR generalizes the Haskell infrastructure in Nix from GHC to any haskellCompiler. It does not trigger any actual changes to the packages or derivations in Nix. It only provides hooks that different compiler can fill with their specific functions.