Freshen up Applicative instances a bit

Cleaning up MonadSemigroup and friends, which always just used Applicative, but we didn't have that type class then.