Add Applicative, Chain, and Semigroup.

Also derive what we can in each structure. Please review. First time working with khepri so I'm not sure if I did something that will blow up later. Seems pretty interesting.