gi: arg: use instance's gtype rather than the introspection data

When converting a native object to it's JavaScript proxy, we want to
be as precise as possible to map that native object.
Right now we handle different kinds of proxy for native types :
      * GObject proxies
      * GBoxed proxies
      * GParam proxies
      * GError proxies
      * Function proxies
      * Unions proxies
      * GI proxies
      * Fundamental proxies
      * basic types

The introspection data can provide information that helps us map a
GType to one of the items listed above. But there is a case that is
rather painful to deal with : interfaces.

In GObject interfaces can be attached to different kind of GTypes
(that includes GObjects and custom fundamental types and maybe more, I
haven't checked all the twisted cases). Although there is a way to add
a prerequisite for an interface, not all interface properly use this
feature.

In this particular case (native -> JS) we can use the native object's
gtype to figure out the most appropriate proxy, which what this patch
implements.

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