Don't use GI type for determining pointer extraction from GValues

Replace usage of g_type_is_a() with G_VALUE_HOLDS() when extracting
pointers from GValues being marshalled from properties and signals.
This fixes fallout from commit abdfb0f.