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.
Correction to catchError implementation
Whitespace fixes
Relaxed mtl bounds
mtl version fixes
Try to fix doctest
Merge pull request #100 from dfoxfranke/master

Add mtl instances for Pipe and ConduitM