Always pass along the callable cache to the arg cache constructors

This will be needed in a future patch which requires that the callable
cache is always available.

https://bugzilla.gnome.org/show_bug.cgi?id=727004
Move special handling of GObject from Python when calling from C

This will soon be used in the GObject arg cache marshaling when
the calling context is C.

https://bugzilla.gnome.org/show_bug.cgi?id=727004
Specialize GObject marshaling when called from C

These are needed otherwise the floating status of
the GObject will not be kept.

https://bugzilla.gnome.org/show_bug.cgi?id=727004
Use the caches for marshaling the arguments in closures

Changes to object marshaling when the calling context is from
C was required to correctly keep the correct floating status.

The array cache has been modified to set to/from_py_marshaller
for the length arg cache. This is required for closures which include
the length arg for backwards compatibility. The closure cache takes
care to change the length arg cache's meta type so it gets marshalled
for closures.

https://bugzilla.gnome.org/show_bug.cgi?id=727004
Fix raising an error in a constructor

It should raise a Python exception instead of warnings about
a constructor returning NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=727004
Add test for a callback with an inout array

This was broken until the closures used the caches for marshaling.

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