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).
The purpose of these overrides is to account for all of the built-in packages of ghcjs, which can differ from those in ghc.  I wanted to make sure that regardless of how a user specified one of these packages, they'd get the built-in one.  I'm not sure this is the best way to do it, but I think we should make sure these packages don't get built from source if they're already installed.