Implement Foldable[Stream]#foldLeft in terms of scala.Stream#foldLeft

This fixes SOE on Foldable[Stream].foldLeft on large streams.
Merge pull request #292 from bmjames/scalaz-seven

Implement Foldable[Stream]#foldLeft in terms of Stream#foldLeft
convert scala.Either to \/
MonadTell and MonadListen typeclasses
cleaning
added trampolined Future, and Task, which extends Future with error handling
added Catchable typeclass, a context in which exceptions can be caught and thrown
clarify `UnapplyInference` example
Fixes #294: `Contravariant` is not the dual of `Functor`
disable typelevel submodule in unidoc task
Override `foldLeft` for `scala.List` instance

Follow-up to 64ef598.
Merge pull request #293 from YoEight/topic/writer

MonadTell and MonadListen typeclasses
Fix Validation forall description
Merge pull request #297 from ceedubs/validation-forall-doc

Fix Validation forall description
added unit test for Task and made some minor API tweaks
merged
guarding Now(x) flatMap f with More to avoid SOE
add apply to Cokleisli
re #295 NEL → Nel
added Nondeterminism typeclass