Move info tuple retrieval into generic function

Create new generic function for retrieving a tuple of child infos.
This greatly simplifies all the bindings which return tuples from
a common pattern of functions on GIBaseInfo based instances.

https://bugzilla.gnome.org/show_bug.cgi?id=709008
Move child info retrieval into generic function

Add a generic function for bindings which return a single child info.
This trivializes binding methods like PyGIObjectInfo.get_parent and
fixes leaks in PyGIObjectInfo.get_class_struct and
PyGIVFuncInfo.get_invoker.

https://bugzilla.gnome.org/show_bug.cgi?id=709008
Move info string retrieval into generic function

Add get_info_string for sharing binding of simple string retrieval on
GIBaseInfo objects.

https://bugzilla.gnome.org/show_bug.cgi?id=709008
Add GIBaseInfo.equal method

Break PyGIBaseInfo rich compare into two methods: equal and richcompare.
Equal is a direct exposure of the GI method and richcompare makes use of
this with additional support for Pyton "==" and "!=" operators.

https://bugzilla.gnome.org/show_bug.cgi?id=709008
Avoid calling g_base_info_get_name on GI_INFO_TYPE_TYPE

Calling g_base_info_get_name on infos tagged with GI_INFO_TYPE_TYPE will
cause a crash. Avoid this by adding _safe_base_info_get_name and using that
throughout the bindings.
Logged GI bug as: https://bugzilla.gnome.org/show_bug.cgi?id=709456

https://bugzilla.gnome.org/show_bug.cgi?id=709008
Expose all GI enum and flags types

Add new types for GIDirection, GITransfer, GIArrayType, GIScopeType,
GIVFuncInfoFlags, GIFieldInfoFlags, GIFuncitonInfoFlags, GITypeTag, and
GInfoType. These types are found in the gi._gi module exposed without the
"GI" prefix and contain all of their values as class attributes. e.g.
gi._gi.Transfer.EVERYTHING.

https://bugzilla.gnome.org/show_bug.cgi?id=709008
Add missing methods on PyGIBaseInfo and sub-classes

Expose all methods of GIBaseBase info and its sub-classes.

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