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.
Not terribly relevant, but does it pick something else, report an ambiguity or just finds nothing?