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).
`cabal2nix` contains code that filters core packages from the list of dependencies, but in the `haskell-ng` branch that list [is significantly reduced](https://github.com/NixOS/cabal2nix/commit/28838245e9d849b2b191d077be5fca3eb82314b7). I reckoned that there's no harm from listing all dependencies (and setting them to `null` when appropriate). Anyway, if you need these kind of core packages listed, then you will get that for all packages in the near future, and I can also back-port the change into the current `master` branch if necessary.

If these packages are a part of ghcjs now, however, then these changes should probably be removed from this PR for the time being to make it simpler.