Add Python implementation of Object.connect_data()

Add GObject.Object.connect_data() which takes an optional "connect_flags"
keyword argument accepting GObject.ConnectFlags enum values. This is
for supporting user data swapping (ConnectFlags.SWAPPED).

https://bugzilla.gnome.org/show_bug.cgi?id=701843
tests: Add tests for connect_object()

Add tests for both introspected and non-introspected signals making use
of connect_object() and connect_object_after() in combination with GObject
and Python object swap data.

https://bugzilla.gnome.org/show_bug.cgi?id=727004
Add deprecation warning for connect_object() with non-GObject argument

GObject.connect_object() accepts any Python object and holds a strong
reference to it in the closure defeating the purpose of connect_object().
Add a warning so we can eventually limit connect_object() to GObject arguments
use the underlying g_signal_connect_object() which holds a weak reference.

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