split most of Control.Exception into new Control.Exception.Base
Move everything but catches/Handler into a new internal module.
This was needed to get the new exceptions working with Hugs, because Hugs
has the constraint that all Haskell 98 library modules, and everything
they include, must be Haskell 98. This also involves a different
representation of SomeException for Hugs, so that type is exported
opaquely for Hugs. Then Control.Exception.Base is Haskell 98 as far as
Hugs is concerned, but Control.Exception needs the extensions turned on.
Control.Exception re-exports everything from Control.Exception.Base
except the functions used by the GHC runtime.