Add Data and Typeable instances for many types exported by Cabal.

Note: this adds an orphan Data instance for Data.Version. A fix has been
proposed upstream.