WIP: More memcheck make target tweaks
gcleanup: Rework cleanup mechanism again, in particular we need remove

Make remove very fast, and possible during cleanup. Any use of remove
can be short circuited during cleanup.

Subsequent cleanup add tries to use same discarded entry removed earlier
but only if not during cleanup.
Cleanup atomic array manually as very last thing

Otherwise we keep putting stuff in freelist during cleanup.
gtype: Cleanup signals for interfaces
tests/gobject: Fix memory leaks in tests
tests/gobject: Run cleanup correctly during tests
gsubprocess: Fix a number of leaks and a segfault

Fixed a number of leaks in gsubprocess, as well as a segfault
that was hidden by never calling g_subprocess_communicate_state_free().
gsubprocess: Fix error detection logic in tests

Various tests were depending on local_error being set by a callback
when it could never have been the case. Simplify async error detection
logic in those cases, and fix leak of GError.
gsubprocess: Fix leaks in tests
gsubprocess: Cleanup GSubprocess correctly

Although it's nice that GSubprocess object lives until its
child goes away, this can't be the case during cleanup and or
unloading of gio, since the GLib worker thread will run non-existant
code.

So in the case that GIO hits cleanup, we finalize the GSubprocess
regardless of the state of its child.
gdbusconnection: Fix invalid memory access

Occurs when the string is zero length.