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.