Add Functor,Applicative and Alternative instances

Add instances to comply with the Applicative-Monad Proposal
Derive Alt standalone to support GHC roles