Add plugin_register_free_pointer() to plugin API

The purpose of this function is to act as a simplified garbage
collector for plugins which create top-level GtkWidget(s), GObject(s),
or other pointers which always need to have them released when the plugin
is unloaded. An example of this would be a plugin which creates a
GtkMenuItem in the Tools menu, when the plugin is unloaded, the
GtkMenuItem in the Tools menu will be destroyed without the plugin
explicitely destroying it in its plugin_cleanup() function.