gsignal: Add support for G_CONNECT_SWAPPED

It was mysteriously missing before, because it is actually a hard
problem than it looks to check correctly. This adds support for
g_signal_connect_swapped() and g_signal_connect_data() with the
G_CONNECT_SWAPPED flag.

Currently, the user_data parameter is validated as being any kind of
pointer. This could potentially be tightened up in future to check that
it is a subtype of the closure variable passed into g_signal_connect()
(even in the non-G_CONNECT_SWAPPED case). However, this is best left to
a separate checker which examines closure types.