timeseries: Add support for fetching specific data-sources. The data-sources are specified by name and are then returned in the specified order. It is an error to request a data-source that does not exist. Implement the feature in the RRDtool timeseries plugin (the only such plugin).
Automatically prefix all log messages with the plugin name (if available).
Let the JSON formatter include a metric's data_names. For that purpose, let the metric store provide a reference to the timeseries information object (to be populated on read). The JSON formatter compiles a list of unique data_names and outputs that alongside the other metric metadata.
Add support for multiple metric data-stores. It did not make sense to only store one and let conflicting values override each other on each iteration. Instead, track each separately, along with the respective last_update timestamp. This will allow to read the right data on access. At the moment, when requesting a timeseries, the most up to date data store will be used. The network plugin does not support sending multiple data stores at the moment. It will only send the first.
Include strings.h instead of defining _BSD_SOURCE to get strcasecmp. _BSD_SOURCE is deprecated in favor of _DEFAULT_SOURCE but also it's not needed for strcasecmp() when including strings.h in addition to string.h.
store: Add separate store-object types for the store writer API. The argument list of some of the callbacks has already gotten kinda long and we'll want to add more (backends, etc.). Introduce new types which provide all meta-data of the respective store types. Also, only use a single callback to store all kinds of attributes, similar to how it was already done in the "proto" module.
Replaced sdb_store_<type> with sdb_plugin_store_<type>. That is, all store updates will now directly go through the plugin API and be distributed to all store-writer plugins from there.