Don't free() contact_name from contactsmember when destroying

We assign it from the contact, so free()ing it here means we
will free() it twice.

Signed-off-by: Andreas Ericsson <ae@op5.se>
lib/kvvec: Add silly helper to locate a specific key

The silly helper does a linear lookup of the searched key and returns
its value. It obviously has horrible performance for everything
beyond 10-ish keys and should be used sparingly.

Signed-off-by: Andreas Ericsson <ae@op5.se>
query-handler: Add qh_error()

The qh_error() function is useful when one wants to pass a message
from whatever function we end up creating output in to the caller.

Since we want error messages to be in some sort of standard format,
we might as well add a helper for it.

Signed-off-by: Andreas Ericsson <ae@op5.se>
nerd: Add channels for exporting host and service performance data

These channels are vital for getting rid of one of the most
performance-hungry parts of a monitoring system, which is the I/O
load created by spooling performance data to files.

By streaming it instead, we'll be handling things far more
efficiently.

The channel exports performance data in the kvvec format, with
NULL-separated entries consisting of newline-separated fields
of key=value format, where perfdata is given as a C string.

Signed-off-by: Andreas Ericsson <ae@op5.se>
wip, amend me

Signed-off-by: Andreas Ericsson <ae@op5.se>