gplugin/gplugin

Add an unloadable property to GPluginPluginInfo and add a shutdown parameter to gplugin_unload.

Add an unloadable property to GPluginPluginInfo and add a shutdown parameter to `gplugin_unload`.

This allows plugins that can only be shutdown once to handle things properly. Examples of this are basically anything that pulls in another library that doesn't allow you to `_init` and `_uninit` more than once.

Testing Done:
Ran the unit tests and gplugin-query.

Reviewed at https://reviews.imfreedom.org/r/943/
The following individuals have contributed to this project.
Ankit Vani <a@nevitus.org>
EionRobb <eion@robbmob.com>
Elliott Sales de Andrade <quantum.analyst@gmail.com>
Gary Kramlich <grim@reaperworld.com>
ivanhoe <ivanhoe@fiscari.de>
Jason Scherer <schereja@gmail.com>
John Bailey <rekkanoryo@rekkanoryo.org>
Mike Ruprecht <cmaiku@gmail.com>
Olaf Hering <olaf@aepfle.de>
Richard Laager <rlaager@pidgin.im>
Sorvival <sorvival@tutanota.com>