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/
/*
* Copyright (C) 2011-2020 Gary Kramlich <grim@reaperworld.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <https://www.gnu.org/licenses/>.
*/
#ifndef GPLUGIN_NATIVE_H
#define GPLUGIN_NATIVE_H
#ifndef __GI_SCANNER__
# ifdef GPLUGIN_COMPILATION
# error "gplugin source files should not include gplugin-native.h"
# endif /* GPLUGIN_COMPILATION */
#endif /* __GI_SCANNER__ */
#ifndef GPLUGIN_GLOBAL_HEADER_INSIDE
# define GPLUGIN_GLOBAL_HEADER_INSIDE
#endif /* GPLUGIN_GLOBAL_HEADER_INSIDE */
@GPLUGIN_NATIVE_H_INCLUDES@
#undef GPLUGIN_GLOBAL_HEADER_INSIDE
#endif /* GPLUGIN_NATIVE_H */