sysdbd: Moved main loop handling into a separate function.

This will allow for easier restart of the main loop.
plugin: Keep a usage counter for each plugin.

Also, let plugin_load return early if the plugin is already loaded.
This is mostly in preparation for future improvements around plugin handling.
sysdbd: Fixed a config parser error message.
plugin: Name the plugin context after the actual module name.

That is, the name as specified by the user without '::' replaced by '/'.
The latter is only used for loading the shared object by file-name.
plugin: Unload (dlclose) a plugin when it's no longer used.

Do so, if the init callback failed.
plugin: Only log a message when actually unloading a module.
plugin: Increment ref-count for a context stored in the TSD.

… and release it when removing it from the TSD. While this shouldn't matter
when everything is done right, this ensures that memory management is done
right.
plugin: Keep a global reference of a plugin context if it's still in use.

D'oh!
plugin: Fixed detection of plugins loaded twice.

This was missing in commit fdfe2a68ba1838cdb1c34d3275d129fb217fbd9d.
plugin: Split sdb_plugin_load() into multiple functions.

… to make it easier to reuse parts of the function.
plugin: Let ctx_create() use ctx_set().

This ensures consistent handling of reference counts.
plugin: Log to stderr if no logger has been registered.

Check the length of the list rather than replying on it being uninitialized.
plugin: Unset the plugin context before unregistering a plugin.

Else, the context is still considered to be in use and, thus, won't be removed
from the global plugin (context) list.
plugin: Do not expect all callbacks to have a plugin context assigned.

For callbacks not registered from a plugin, we don't have a context. For
example, the frontend's connection logger callback does not have a context.
utils llist: Removed sdb_ prefix from private functions.

For consistency!
utils llist: Added sdb_llist_clear().

This function clears the list by removing all elements and releasing the
included objects. It's similar to destroy() but does not actually release the
list object itself.
plugin: Added support for reconfiguring the system on the fly.

Reconfiguring all plugins happens in multiple steps:

First, call sdb_plugin_reconfigure_init() to deconfigure all plugins by
calling their config callbacks with a NULL config tree and unregistering all
registered callbacks.

Then, sdb_plugin_configure() and other functions may be used to provide the
new configuration or load new plugins. For all plugins which were already
loaded before, sdb_module_init() will be called with a NULL argument when
reloading them.

Finally, sdb_plugin_reconfigure_finish() will clean up leftover pieces, like
unloading plugins which are no longer in use.
Make all plugins ready for reconfiguration support.

That is, handle NULL arguments passed to the config and module init functions
during reconfiguration.
sysdbd: Added daemon_free_listen_addresses().

This is a helper function for handling config settings.
sysdbd: Reconfigure the daemon on SIGHUP.

The current approach shuts down the backend collector thread and the frontend.
Then, the config file is parsed again and libsysdb's reconfiguration mechanism
is used to reconfigure all plugins.