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/
if get_option('vapi')
if not get_option('introspection')
error('Vala generation requires GObject Introspection.')
endif
add_languages('vala', native: false)
gplugin_vapi = gnome.generate_vapi('gplugin',
sources : gplugin_gir[0],
install : true,
gir_dirs : meson.current_build_dir() / '..' / 'gplugin',
)
if get_option('gtk3')
gplugin_gtk_vapi = gnome.generate_vapi('gplugin-gtk',
sources : gplugin_gtk_gir[0],
packages : [ 'gtk+-3.0' ],
install : true,
gir_dirs : meson.current_build_dir() / '..' / 'gplugin',
)
endif
subdir('tests')
endif # vala