gir: Identify type/gpointer types
When using out/in-out arguments in signals, the C type assigned is derived from G_TYPE_POINTER (so: gpointer), but the type name is typically overridden via a (type) annotation. This produces type definitions like:
<type name="gint" c:type="gpointer"/>
Since the C type is gpointer, we use the type name when looking up the ast.Type in the GIR parser, and that usually ends up giving use a type for the integral type, instead of a proper pointer type.
To avoid that, we check if the type definition takes a generic pointer as the C type, and the type name is an integral type, and tweak the query parameters for the types LUT.
Fixes: #110 (closed)