Use G_IS_VALUE for checking return values in closure marshaling

Replace return_value argument NULL checks in GClosureMarshal
implementations with G_IS_VALUE. This checks both NULL and
validity of the value (!= G_TYPE_INVALID). This is needed
because GLib can pass either NULL or an invalid value based
on whether or not G_ENABLE_DEBUG is set.
See: https://bugzilla.gnome.org/show_bug.cgi?id=707249

https://bugzilla.gnome.org/show_bug.cgi?id=707170