Use Data.Functor.Identity

`Data.Functor.Identity` has just entered base, and includes some optimizations that may or
may not be relevant. For older versions, don't bother making `Identity` a
`Monad` instance--it's not exported, and that instance is never used.
Make `applicativeTree` slightly more readable. There doesn't seem to
be any reason to `seq` the quotient, as `quotRem` calculates that along
with the remainder.