added operator^() to mean fmap f m a.
make monad_traits<category::errored> SFINAE specialization friendly.
Added example using operator|() / catch_error.
Added mdo and operartor >> on monads. Not tested.