Register Go marshalers for GObject GTypes.

This change adds a new function to the glib package to register
marshaling functions to convert a *C.GValue with some particular GType
to the equivalent Go value.  Marshalers have been registered for all
Go binding types for C types registered with GObject type system.

When connecting to signals with Go functions that take arguments, it
is now possible (and required), to use equivalent Go types for the C
callback's arguments.  If a type is not suitable (either the concrete
types do not match, or the concrete type does not implement a
interface type's method set), a panic will occur when the signal is
emitted.

Closes #44.