Don't pass None to callbacks when user data is not specified

For APIs which support a callback and optional user data,
don't pass the user data to the callback if it was not explicitly
specified when the callback was connected.

https://bugzilla.gnome.org/show_bug.cgi?id=640812
Refactor GLib.child_watch_add to make it more testable

Break the argument munging code into a separate function which
can be tested in isolation of adding a child watch. Update tests
to reflect this. Add additional failing test which specify
all args as keywords which we eventually need to support for
consistency with the rest of PyGObject.

https://bugzilla.gnome.org/show_bug.cgi?id=640812
Refactor GLib.io_add_watch to make it more testable

Break the argument munging code into a separate function which
can be tested in isolation of adding an io watch.
Add additional failing test which specifies all args as keywords
which we eventually need to support for consistency with the
rest of PyGObject.

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