Add support for GHCJS

This provides a (AFAICT) fully working GHCJS package set.

@peti Can I get your feedback on how to best merge this in? I'm sure there are some things to consider, like if/how we should specify that a given package supports GHCJS (or more generically, any particular compiler).
@ryantrinkle  Assuming I understand you correctly, might it make more sense to do something like this instead (in `pkgs/top-level/haskell-packages.nix`)?

      ghcjs = callPackage ../development/tools/haskell/ghcjs {
        Cabal = self.Cabal_1_22_0_0;
        cabalInstall = self.cabalInstall_1_22_0_0;
        haddock = self.haddock.override {
          Cabal = null;
        };
      };

Or am I missing something?