Add MonadError and Catchable for Scala Futures.

This adds MonadError and Catchable instances for Scala futures, similar
to Task. The major difference, of course, is that Futures are eager.