[RFC] Add Data.Functor.Rep.TH

This is a first cut at deriving `Rep` instances with Template Haskell. Does this interface look sane?