Packages cleanup, and allow new packages to be loaded with :set again
This cleans up the package subsystem a little. There are some
changes to the GHC API as a result.
- GHC.init and GHC.initFromArgs are no longer necessary.
- GHC.newSession takes the root of the GHC tree as an argument
(previously passed to GHC.init).
- You *must* do GHC.setSessionDynFlags after GHC.newSession,
this is what loads the package database.
- Several global vars removed from SysTools
- The :set command in GHCi can now cause new packages to be loaded,
or can hide/ignore existing packages.