`Distributive` for `Generic1` types

This adds the machinery necessary for deriving `Distributive` instances from `Generic1` instances.