tests: Fix source testing to handle critical with non-existing sources

Silence new critical coming from g_source_remove on non-existing sources.
This function still returns False, but we need to silence the new critical
so the test suite doesn't fail. See bug 710724.

https://bugzilla.gnome.org/show_bug.cgi?id=710978
Add consistent GLib.MainLoop SIGINT cleanup

Remove auto cleanup of SIGINT source handling by returning True from the
signal callback. This gives the __del__ method consistent cleanup semantics
regardless of whether or not a SIGINT occurred.

https://bugzilla.gnome.org/show_bug.cgi?id=710978
Fix toggleref safety problems by always enabling the GIL

Call PyEval_InitThreads for the base gi module import. This forces the
Python internals create the GIL and always support threading with the
various thread state enter/exit funcs. This is needed since we cannot
predict which GI repositories might accept Python callbacks and run them in
non-Python threads or trigger toggle ref notifications in a thread other
than main.

https://bugzilla.gnome.org/show_bug.cgi?id=709223
release 3.11.1
configure.ac: post-release bump to 3.11.2
Remove overzealous argument checking for callback userdata

Remove check which ensures userdata is None if the callback is None.
This check would need to become more complicated with recent versions of
PyGObject where userdata can be variable (would also need to check against
a tuple containing None). Instead of adding more complex checking, simply
remove the checking as it is unnecessary to begin with.

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