Add mtl instances for Pipe and ConduitM

The following new instances are provided:

MonadReader r m => MonadReader r (Pipe l i o u m)
MonadWriter w m => MonadWriter w (Pipe l i o u m)
MonadState s m => MonadState s (Pipe l i o u m)
MonadRWS r w s m => MonadRWS r w s (Pipe l i o u m)
MonadError e m => MonadError e (Pipe l i o u m)

MonadReader r m => MonadReader r (ConduitM i o m)
MonadWriter w m => MonadWriter w (ConduitM i o m)
MonadState s m => MonadState s (ConduitM i o m)
MonadRWS r w s m => MonadRWS r w s (ConduitM i o m)
MonadError e m => MonadError e (ConduitM i o m)

No instances are provided for MonadCont because
  a) I can't see the use case;
  b) any sanity-preserving implementation probably requires adding a
     new constructor to Pipe, and this isn't worth the API breakage
     which that would entail.