PEP8 fixes

Use infix 'not' instead of prefixed.
Don't use double comments (##).
Use space between comment and text.
Un-comment tests that now work.
Move broken (and won't fix) implicit int64 signal tests into
a new skipped test function.
Derive PyCallbackInfo from PyCallableInfo

Update the static GI bindings for PyGICallbackInfo to derive
from PyGICallableInfo. This makes all the gi.CallableInfo methods
available to gi.CallbackInfo for use from Python.
Add gi.CallableInfo.can_throw_gerror()

Add static binding for g_callable_info_can_throw_gerror.
Consolidate GError related code into pygi-error

Rename all pyglib_error_* functions to pygi_error_* and move them into
pygi-error.[h|c].
Register GError as part of the gi._gi module instead of gi._gi._glib.
Update all code to use new naming.

https://bugzilla.gnome.org/show_bug.cgi?id=712519
tests: Move GError tests into test_error.py

https://bugzilla.gnome.org/show_bug.cgi?id=712519
Add Python implementation of GError

Add internally used gi/_error.py module as a basis for implementing
a unified GError between introspection and static bindings. Patch Python
implementations of GError.matches and GError.new_literal in the GLib
overrides

https://bugzilla.gnome.org/show_bug.cgi?id=712519
Simplify pygi_error_marshal to use GError initializer arguments

https://bugzilla.gnome.org/show_bug.cgi?id=712519
Clobber GLib.Error with custom implementation

Clobber the introspection GLib.Error class with the custom Python
implementation found in gi._error.GError. Update references to GLib.GError
to use GLib.Error.

https://bugzilla.gnome.org/show_bug.cgi?id=712519
Move pygi foreign API into pygi-foreign-api.h

Move limited set of APIs necessary for registering foreign marshalers into
pygi-foreign-api.h. Remove "_real" from internally used APIs and add necessary
includes to the rest of pygobject for calling directly (instead of going through
the PyCapsule API within PyGI itself).
This is needed to avoid compilation errors when including pygobject.h in
foreign marshaling plugins which conflicts with pygobject-private.h.

https://bugzilla.gnome.org/show_bug.cgi?id=694604
Initialize the foreign API at PyGI load time

Initialize the foreign struct list at gi._gi module load time. This ensures
we always have a valid (non-null) list of foreign marshalers outside of the
context of marshaling.

https://bugzilla.gnome.org/show_bug.cgi?id=694604
tests: Move cairo tests into test_cairo.py

Move cairo related tests from test_everything.py into test_cairo.py

https://bugzilla.gnome.org/show_bug.cgi?id=694604
[New API] Add gi.require_foreign

Add gi.require_foreign(namespace, symbol=None) API for determining
if a foreign marshaling module is available. This can be used in an
applications import statement block to verify the existence of a
specific foreign marshaling module (cairo).
Additionally it forces loading of the foreign marshaling module as
well as the GI repository module. This allows non-introspected signal
closures to correctly marshal their arguments (bug 694604).

https://bugzilla.gnome.org/show_bug.cgi?id=707735
Add cairo marshaling support for non-introspected signals

Add link dependency of cairo-gobject to _gi_cairo_la needed for retrieving
the GTypes of cairo classes.
Add GValue marshalers for cairo Context, Surface, FontFace, ScaledFont,
and Pattern classes.

https://bugzilla.gnome.org/show_bug.cgi?id=694604
Replace direct parent class call by super()

Super works, it just needs the correct class.

https://bugzilla.gnome.org/show_bug.cgi?id=729970
tests: Use assertRaises as a context manager for GError test

Simplify tests/test_error.py:TestMarshalling.test_exception so that
it no longer needs to pull exception information out of sys.exc_info.