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).
ghcjs links against ghc, which is built-in and links against the built-in cabal, and also against Cabal.  If it links against a non-built-in Cabal, this will cause a problem.