src/utils_vl_lookup.[ch]: Support selecting values by regex.

The name generated by the Aggregation plugin currently includes the
regular expression, which is suboptimal. We need to come up with something
clever there I guess.
config: Added support for specifying include filter patterns.

An optional second argument may now be passed to the "Include" configuration
option. If specified (and if the fnmatch() function was available at build
time), only files matching this pattern will be included. For example, the
following will include all files matching "*.conf" in any subdirectory of
/etc/collectd.d/:

  Include "/etc/collectd.d" "*.conf"

This is useful, e.g. for distributions in order to include a possibly empty
directory in the default configuration including all subdirectories but also
making it possible to ship further documents like README files.
aggregation plugin: Make it possible to set parts of the identifier.
config: Implemented include filter pattern as sub-option in a <Include> block.

This has the advantage of being more easy to read/understand and also being
more flexible. E.g. multiple filters and other options may be specified in the
future.

Thanks to octo for suggesting this!
configfile: Free a string buffer returned by cf_util_get_string().
Merge branch 'sh/config-include'
apcups plugin: Implement the "ReportSeconds" option.
Remove the redundant and little used STATIC_ARRAY_LEN() macro.
Riemann UDP write plugin

First implementation of a riemann plugin.
This is basic for now and only support
sending to a UDP target, later work will
include notification support and service
rewriting.

Signed-off-by: Florian Forster <octo@collectd.org>
add support for notifications as well

Signed-off-by: Florian Forster <octo@collectd.org>
take into account PR comments from @octo

Signed-off-by: Florian Forster <octo@collectd.org>
riemann plugin: Improve the riemann_send() function.

Make the passed in "Msg*" const, use swrite() to make sure the entire
buffer is sent and break out the disconnect logic into an own function.
riemann plugin: Remove trailing white-space.
riemann plugin: Make all private funcitons and module-global variables "static".
riemann plugin: Move the creation of protobufs into their own function.

This also adds a couple more tags, e.g. "type:..." and so on. The "host"
field is now correctly populated from the vl->host or n->host field.
riemann plugin: Add support for service names.

I.e. you can not define a "riemann" service in /etc/services and then use
«Port "riemann"» in the configuration. Also add support for arbitrarily
long host names.
riemann plugin: Fix a double-free issue with the shared structure.

The reference to the riemann_host structure is shared between the write
and the notification callback. Upon exit, riemann_free() is called twice,
via the user_data_t structure passed to the register functions. Previously
this would have caused a double-free, which is unacceptable.

This patch introduces a reference counter and will only free the structure
(and close the socket) when the last reference is freed.

The locking has been moved out of the riemann_connect() function and into
the riemann_send() function. It is unlikely, but not impossible that two
threads interfere with each other when writing to the socket.
riemann plugin: Fix two minor bugs.
src/common.[ch]: Implement strarray_{add,free}.
riemann plugin: Use the new strarray interface to allow indefinite number of tags.