Adds Functor/Applicative instances for Min/Max/First/Last

Useful when defining nested structures containing one of these
types, as it allow us to derive functor and applicative (manually).
Merge pull request #27 from hanshoglund/master

Adds Functor/Applicative instances for Min/Max/First/Last