Add MenuButton bindings.
Make MenuShell.Append's type checks stricter.

gtk_menu_shell_append and related GtkMenuShell methods take a
GtkWidget * as an argument but the documentation specifies that the
child must be a GtkMenuItem (or subclass).  This change modifes the
Append method to instead take a new interface type, IMenuItem, that is
implemented by all menu item widgets (including MenuItem and
SeparatorMenuItem).

This is technically an API break but should be source compatible with
any previous correct usage of Append.
Add toWidget methods for new IMenu* interfaces.

This uses the toWidget methods from the embedded Widget, rather than
calling toMenu/toMenuItem and using unsafe to switch the pointer to a
*C.GtkWidget.
Add RadioButton bindings.

Closes #38.
Add RadioButton to cast() for Builder support.
Simplify and fix callback user data.

This change introduces a fix for a panic experienced when passing user
data to a callback closure connected with Object.Connect.  Rather than
passing the Go var through the glib runtime as a GValue with a Pointer
GType to a Go reflect.Value, a pointer to the reflect.Value is saved
directly with the callback context.  After all glib args are exhausted
when creating the arguments for the reflected func and if the saved
user data is non-nil, it is added as the last argument.

As all glib callbacks are now created without user data, the
_g_closure_new_with_data C function (a wrapper around
g_closure_set_meta_marshal and goMarshal) has been removed.
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.
Implement CheckMenuItem and RadioMenuItem bindings.

Closes #51.
Merge branch 'master' of https://github.com/conformal/gotk3 into vvanpo