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).
No package ever refers to the name `foo_x_y_z`, so setting these names to `null` is definitely unnecessary. Defining the simple `foo` name to `null` is fine, IMHO, if these are core packages of ghcjs that we cannot replace.