Provide instances for Control.Monad.Except.ExceptT, Control.Monad.Reader.Strict.ReaderT, etc…

The initial motivation was to add missing instances of MonadRandom—in particular for ExceptT which deprecates ErrorT. There are two other commits for things I met along the way, although they aren’t as important.

I didn’t e.g. add lower bounds in the cabal file or touch the changelog.