Add Distributive instances for generic representations

Previously these were available as `GDistributive` instances but not `Distributive` due to the `Functor` constraint. While the needed `Functor` instances are [coming for 7.10](https://ghc.haskell.org/trac/ghc/ticket/9043), we include orphans here for backwards compatibility.