Fix crash when marshalling nil for callback

Previously, garbage was left in destroy_handler. Some callees (notably
gtk_menu_popup_for_device()) invoked garbage destroy handler even when
target callback address was NULL.  Fix by setting destroy handler to
NULL in this case too.
Gtk: fix handling of Gtk.Menu.popup

lgi Gtk override previously assigned Gtk.Menu.popup to
popup_for_device, but in the meantime an annotation was added to
Gtk.Menu.popup.  Fix the resulting mess by adding override for
Gtk.Menu.popup which tries to accept arguments for both forms.