Remove dead code for marshalling array lengths in the context of vfuncs

Remove usage of the args parameter from _pygi_argument_to_array. This is no
longer used because array marshalling for vfuncs is now handled by the cached
marshaller.

https://bugzilla.gnome.org/show_bug.cgi?id=688792
Refactor signal array length marshalling to support a length policy

Replace passing arrays of data to non-caching array marshallers with a policy
closure that can be customized depending on context. In the case of signals,
this is mostly scaffolding which will be replaced with caching marshallers.
However, it opens the legacy marshaller for usage with struct and object
array fields.

https://bugzilla.gnome.org/show_bug.cgi?id=688792
Use array lengths specified on struct fields

Add array length marshalling policy for struct fields. This fixes accessing
C array fields on structs which also specify a length field.

https://bugzilla.gnome.org/show_bug.cgi?id=688792
Replace GObject.signal_query with introspected version

Remove the static bindings for GObject.signal_query and replace with a
Python compatibility shim which utilizes the introspection exposed version
of the function.

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