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).
Hmm; isn't it possible that people using haskellPackages.override would make use of explicit versions?  E.g.:
haskellPackages.override {
  extension = self: super: {
    somePackage = super.somePackage.override {
      aeson = self.aeson_0_8_0_0;
    };
  };
}