Add Applicative and Functor as superclasses of Monad
adding sequence and joinWith laws
review feedback
typos
adding traverse
renaming
removing genSequence
Merge pull request #330 from twitter/econlon-add-applicative

Add Applicative and Functor as superclasses of Monad