[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