Renamed the 'MonadMutVar' interface to 'MonadST'.

This name has the advantage of being shorter, and is really the obvious name when you consider the existence of the 'ST' monad in `base` and the 'STT' monad transformer (in the `STMonadTrans` package on Hackage).
Added the 'forkFinally' operation to the 'MonadFork' interface.
Renamed "Control.Monad.Layer" to "Control.Monad.Lift" and made several other huge changes.

I removed all the 'MonadLayer'* type classes. These were monomorphic versions of 'MonadTrans', 'MonadTransControl', etc., and had a low power-to-weight ratio. Their removal does not significantly reduce the usefulness of @layers@, and simplifies things greatly and reduces duplication.

This allows us to reuse the 'MonadTrans' class from transformers and the 'MFunctor' class from mmorph rather than reimplementing our own versions of them. We do implement our own 'MInvariant' class, but hopefully this can be merged into mmorph.

We still implement our own 'MonadTransControl' class, as it has a number of advantages (from our perspective) to the one from monad-control. If monad-control made the relevant changes, and the dependency on transformers-base was reversed, we could depend on monad-control as well.

These changes also make layers more portable. It now compiles perfectly with GHC 6.12, and possibly even older versions, but I can't test this yet.