Bump minimum glib version to 2.32 due to use of g_mutex_init/g_mutex_clear in component.c
Also remove the check for GLIB version < 2.32 and deprecated calls
Add per-agent mutex
The only worry is for callbacks where the source was destroyed and
the user_data is a struct that contains the agent that we lock
and it's possible the struct was destroyed.. but if we lock with NULL
and use the global mutex, then it's not helping us. Is that even a
possible race condition ?
Attempt to send all signals from the main context
The code is currently disabled with an #if 0 because the test-io-stream-closing-read
unit test fails if we enable it, I still can't figure out the cause for this
but other than that, everything works fine.