A few updates to cleanup a bunch of code in libpurple.
* Add a new plugin state UNLOAD_FAILED that tracks when a plugin failed to
unload.
* Add a new signal GPluginManager::unload-plugin-failed
* Update GPluginManager::load-failed to pass the error, if any, that the
plugin returned.
* Added gplugin_manager_foreach and GPluginManagerForeachFunc to make it
easier to operate on all plugins.
<?xml version='1.0' encoding="UTF-8"?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"