split ghci modules off into their own package
ghci code should be split into bits that are always compiled (and always work), and modules that are in a separate
ghci package. The current situation means that clients of the GHC API cannot specify whether or not they need the ghci modules (or other code inside
GHCI ifdefs), and means that clients may accidentally end up using ghci-only interfaces without realising it. This is not just hypothetical: haddock has grown a dependency on ghci code: #3558 (closed).