Save some typing for "Nothing" of a typeclass

It is not uncommon for generated functions to have optional arguments
of the form
doSomething :: WidgetK a => Maybe a -> ...

Using these with Nothing is a bit painful, one needs to write:
doSomething (Nothing :: Maybe Widget) ...
so we introduce appropriate synonyms "noWidget", etc., such that the above
becomes simply
doSomething noWidget ...
Support for GClosure

Some GObject based APIs (like g_bus_own_name_*) favor GClosures over
plain callback arguments, "for easier binding"... this commit adds
support for GClosures, basically for every Callback or Signal "XYZ"
there is now a corresponding XYZClosure, that constructs a Closure out
of a Haskell function with the appropriate type.