Move all the generated attribute code to its own module

The code for accessing GObject properties is now all contained in
the *Attributes module (*=Gtk, for example). This leaves the * module
slimmer, easier to read, and it does not require as many GHC extensions.