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

Re-organize hash table arg cache and its marshaling by moving all
related code fragments into an isolated file where most of it is made
static. pygi-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-basictype.h exposes:
pygi_arg_basic_type_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-list.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-array.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-error.c.

https://bugzilla.gnome.org/show_bug.cgi?id=709700
cache refactoring: Move closure setup and marshaling into pygi-closure

Move closure argument caching and marshaling fragments into
pygi-closure.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-object.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-struct-marshal.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-enum-marshal.c. Remove pygi-marshal-from/to files.

https://bugzilla.gnome.org/show_bug.cgi?id=709700
marshal refactoring: Move GIArgument from GValue code to new file

Add gi/pygi-value.h and .c files with initial contents of
_pygi_argument_from_g_value. Eventually this file will contain all code
related to GValue marshaling from various code locations in the project.

https://bugzilla.gnome.org/show_bug.cgi?id=709700
marshal refactoring: Move GValue marshaling from pytype into pygi-value

Move marshaling of GValues to and from PyObjects into pygi-value.c. Make
PyGTypeMarshal struct and related functions accessible via pygtype.h.

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