plugin cleanup: Fix glib warning about unconnected signal handler.

The warning looks like this: (geany:6315): GLib-GObject-WARNING **:
gsignal.c:2593: instance 'XXX' has no handler with id 'NNN'. It appears when
the plugin cleanup code tries to disconnect a signal that the plugin connected
with plugin_signal_connect() and already disconnected on its own with
g_signal_handler_disconnect* (Because there is no plugin api for disconnecting
signal). In this case the handler id becomes stale.

The fix is either to check if the handler id is still valid (connected) or to
provide a plugin_signal_disconnect(), or most preferably both. This commit
implements the former.