Remove "return" from Monad

Monad has Applicative as a superclass. The methods "pure" and "return" are
supposed to do the same thing. This change does the following:

1. Remove "return" from Monad
2. Remove "return" from all instances of Monad in the standard library
3. Define a compatibility function "return":

return : Monad m => a -> m a
return = pure

This enforces that "return" and "pure" do the same thing.
Merge pull request #319 from david-christiansen/remove-return

Remove "return" from Monad