Add Functor/Applicative instances for ParseResult

ParseResult is a Monad, so it should also be a Functor and an Applicative.
Correct applicative instance
Functor/Applicative instance for types in ReadP.hs

This defines the following instances for the types in ReadP.hs:
  * Functor/Applicative for P
  * Appplicative for Parser
Tidy up

Remove uneeded import of join and add a wildcard pattern when f is
unused by fmap.
More instances and use ap as default for (<*>)
Apply suggestions from byorgey
Merge pull request #1385 from bennofs/patch-1

Functor and Applicative instances