cache refactoring: Remove special case marshaling for instance arguments

Remove duplicate code for marshaling struct and objects for
instance arguments. Re-use individual cache marshalers for
structs and objects with the instance argument. This required
removal of passing GITypeInfo to the marshaler because it is
not available for instance arguments. Instead always assume
"is_pointer" for the instance argument by using the cache.

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