Fix GLib.Source sub-classing with initializer args

Add variable args and keyword args to the GLib.Source.__new__
method to support sub-classes which want to implement __init__.

https://bugzilla.gnome.org/show_bug.cgi?id=707904
Fix union argument regression when marshaling from python

Check for union members when marshaling boxed types from Python.
This is a regression caused by stricter type checking added when
merging code from pygi-argument.c.
Re-add pyg_boxed_check to the same bit of code in addition to
__gtype__ checking to avoid a double regression.

https://bugzilla.gnome.org/show_bug.cgi?id=703873
Update current maintainers list in README
release 3.9.92
Fix test_gi.TestProjectVersion.test_version_str()

In this test case we only do a string comparison, not a proper "by version
component" numerical one. So relax the test to also work with 3.10.
release 3.10.0
configure.ac: post-release bump to 3.10.1
configure.ac: bump trunk to 3.11.1
Remove support for allowing PyObjects as void pointers

Final removal of marshaling Python object addresses as
void pointers. This ensures we can successfully pass
integer values as the pointer without the Python object
leaking or crashing due to invalid memory.

https://bugzilla.gnome.org/show_bug.cgi?id=688081
cache refactoring: Add comments to callable cache structure

Add comments to count fields on _PyGICallableCache.

https://bugzilla.gnome.org/show_bug.cgi?id=640812
cache refactoring: Move PyGI direction code into new function

https://bugzilla.gnome.org/show_bug.cgi?id=640812
cache refactoring: Use GPtrArray for callable arg cache

Replace manual management of the C array holding individual
argument caches with usage of GPtrArray. This provides storage
of the array length along with item memory management.

https://bugzilla.gnome.org/show_bug.cgi?id=640812
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
cache refactoring: Use bit field for PyGIDirection instead of enum

This supports cleaner logic when testing the direction of
arguments due to the majority of these tests being along the
lines of: (direction == FROM_PYTHON || direction == BIDIRECTIONAL)
Which is replaced with: (direction & FROM_PYTHON)

https://bugzilla.gnome.org/show_bug.cgi?id=640812
cache refactoring: Remove continue statements from _args_cache_generate

Remove continue and goto statements from the large loop within
_args_cache_generate. This simplifies the sharing of parts of
the loop for future refactoring.

https://bugzilla.gnome.org/show_bug.cgi?id=640812
cache refactoring: Move variable declarations to blocks where they are used

https://bugzilla.gnome.org/show_bug.cgi?id=640812
cache refactoring: Cleanup array length argument marshaling

Add shared function: _arg_cache_array_len_arg_setup for use
with both to and from array marshaling setup. This function
consolidates all of the edge cases regarding array length setup
and removes the need for flagging arguments with
PYGI_META_ARG_TYPE_CHILD_NEEDS_UPDATE.

https://bugzilla.gnome.org/show_bug.cgi?id=640812
cache refactoring: Move arg cache field assignments into _arg_cache_new

https://bugzilla.gnome.org/show_bug.cgi?id=640812
Add support for default arguments annotated with allow-none

Support default value of NULL for tail end arguments which are
marked with allow-none.
The implementation uses a place holder object for un-supplied arguments
which are annotated with allow-none. This is then used later during
marshaling to supply NULL as the default.
Additionally support an implicit default for callback user_data
using the same technique.

https://bugzilla.gnome.org/show_bug.cgi?id=640812
Fix memory leak for caller allocated GValue out arguments

Swizzle the order of type checks in _cleanup_caller_allocates so
G_TYPE_VALUE arguments are checked before G_TYPE_BOXED. The ordering is
important because G_TYPE_VALUE is a sub-type of boxed and so its specialized
cleanup code was never being called (g_value_unset).
Additionally update check to use g_type_is_a instead of a compare to handle
the potential case of a G_TYPE_VALUE sub-type.

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