Add Applicative, Chain, and Semigroup.

Also derive what we can in each structure.