Merge gobject static code into the gi module

Remove gi._gobject._gobject as a separately compiled static module and
move all the files into gi._gi.
Remove dead module initialization macros from "pyglib-python-compat.h"

https://bugzilla.gnome.org/show_bug.cgi?id=712197
Move gobject sub-module Python files into the main gi package

This moves the signalhelper, propertyhelper, and constants Python modules
from gi/_gobject into gi. Keep gi/_gobject/__init__.py around because it is
still needed to maintain the "_PyGObject_API" exposed by pygobject.h. This
allows external modules compiled with prior versions of PyGObject to
continue working with newer versions.

https://bugzilla.gnome.org/show_bug.cgi?id=712197
cache refactoring: Separate ArgCache creation and setup

Move PyGIArgCache and PyGIInterfaceCache generic setup into standalone
functions: pygi_arg_base_setup and pygi_arg_interface_setup respectively.
Shift argument order and move arguments which will eventually be removed
from the signature into the tail with comment. Isolate special casing for
GI_INFO_TYPE_CALLBACK ArgCache creation to a single location in
_arg_cache_new_for_interface.

https://bugzilla.gnome.org/show_bug.cgi?id=709700
cache refactoring: Move PyGIHashCache and related marshaling into new file

Massive re-org of hash table arg cache and its marshaling by moving all
related code fragments into an isolated file where most functions are made
static. pygi-arg-hashtable.h exposes a single function:
pygi_arg_hash_table_new_from_info. This is all the caching system needs to
produce the proper bits for handling hash table marshaling.

https://bugzilla.gnome.org/show_bug.cgi?id=709700
cache refactoring: Move basic type arg setup and marshaling into new file

Move all basic type arg caching and marshaling fragments into an isolated
file where most functions are made static. pygi-arg-basictype.h exposes:
pygi_arg_hash_table_new_from_info, _pygi_marshal_from_py_basic_type, and
_pygi_marshal_to_py_basic_type which allows continued use for all marshaling
code paths.

https://bugzilla.gnome.org/show_bug.cgi?id=709700
cache refactoring: Break sequence cache up for array vs list

Add new arg cache type specialized for arrays. This cleans up the basic
sequence cache type which does not need length and size related info. Remove
fixed length checks from GList and GSList from_py marshaling because these
will always be -1.

https://bugzilla.gnome.org/show_bug.cgi?id=709700
cache refactoring: Move GList/GSList arg setup and marshaling into new file

Move GList and GSList argument caching and marshaling fragments into an
isolated file: pygi-arg-glist.c.

https://bugzilla.gnome.org/show_bug.cgi?id=709700
cache refactoring: Move GArray arg setup and marshaling into new file

Move GArray argument caching and marshaling fragments into an
isolated file: pygi-arg-garray.c.

https://bugzilla.gnome.org/show_bug.cgi?id=709700
cache refactoring: Move GError arg setup and marshaling to new file

Move GError argument caching and marshaling fragments into
isolated file: pygi-arg-gerror.c.

https://bugzilla.gnome.org/show_bug.cgi?id=709700
cache refactoring: Move callback setup and marshaling into new file

Move callback argument caching and marshaling fragments into
isolated file: pygi-arg-callback.c.

https://bugzilla.gnome.org/show_bug.cgi?id=709700
cache refactoring: Move GObject arg setup and marshaling into new file

Move GObject argument cache setup and marshaling fragments into
isolated file: pygi-arg-gobject.c.
Break GIInterfaceCache creation and setup into API for interface based
argument cache usage.

https://bugzilla.gnome.org/show_bug.cgi?id=709700
cache refactoring: Move various struct arg setup and marshaling to new file

Move struct (boxed, union, gvalue, gclosure, variant, and pointer) argument
cache setup and marshaling fragments into isolated file: pygi-arg-struct.c.
Remove redundant and dead code related to boxed and union marshaling.

https://bugzilla.gnome.org/show_bug.cgi?id=709700
cache refactoring: Move enum and flags arg setup and marshaling to new file

Move enum and flags argument cache setup and marshaling fragments into
isolated file: pygi-arg-enum-flags.c
Final removal of pygi-marshal-from/to files.

https://bugzilla.gnome.org/show_bug.cgi?id=709700
Change arg cache to use bit fields
Add generic child arg API