Reorganized instance definitions to put them all in Proxy.hs.

This uses another hs-boot file, but is otherwise cleaner than
spreading the instances all over GHC.