Rework how signal callbacks work.

This change modifies how (*glib.Object).Connect and IdleAdd work by
creating a GClosure.  This allows safely connecting funcs with
arguments matching those of a glib/gdk/gtk callback.

This does break the public API with previous versions.
ConnectWithData is no longer available (use Connect instead) and
callback funcs taking a CallbackContext must be changed to pass
callback parameters directly.

The examples in gtk/examples have been modified to use the new
callback behavior, and can be useful when updating applications to use
the new API.

Based of work done by dradtke on his GoTK3 fork
(https://github.com/dradtke/gotk3) after discussion on how to
integrate with Conformal's GoTK3.  Thanks!