Add SNMPv3 authentication and encryption support

Adds the following configuration options to support SNMPv3 authentication:
* SecurityLevel - authPriv | authNoPriv | noAuthNoPriv
* Username - username for authentication
* AuthPassphrase - passphrase for authentication
* AuthProtocol - MD5 or SHA
* PrivacyPassphrase - passphrase for encryption
* PrivacyProtocol - AES or DES
* Context - Optional authentication context
check if libpcap has PCAP_ERROR_IFACE_NOT_UP

This should prevent DNS plugin from being built on systems with libpcap
older than 1.0.0.

GitHub issue #373
RedHat RPM spec: updates for 5.4.0
curl_json plugin: avoid unlikely overrun

Signed-off-by: Florian Forster <octo@collectd.org>
curl_json plugin: avoid accessing off the end of the avl_tree_s

It's not written this way, but really we have a union { *key; *tree; }
which is differentiated by checking for the presence a magic field
which only exists in key.  This leads to accesses off the end of the
tree.  Putting the magic at start of the key avoids this.

Signed-off-by: Florian Forster <octo@collectd.org>
zfs_arc plugin: Collect "allocated" and "stolen" on FreeBSD only.

The appropriate log messages have been demoted to WARNING.

Github: #305
cgroups: don't fail parsing when colon not found

The format of cpuacct.stat seems to not always have a colon as separator.

It appears to *not* have the colon at least on debian's kernel 3.2.41 and
3.2.35, as well as on RHEL6 with 2.6.32. All of them have decent support for
cgroups/lxc, and the cgroups plugin fails to work with them without this patch.

Also, looking at other implementations shows that they *don't* expect a colon:
https://bitbucket.org/dotcloud/liblxcstats/src/2558b4fbbf589c609895b0badbfc7d413466d716/probes/cpuacct.c?at=default#cl-71
https://github.com/BrightcoveOS/Diamond/blob/master/src/collectors/cpuacct_cgroup/cpuacct_cgroup.py#L55
correct typo
src/utils_mount.c: Fix wrong behavior in cu_mount_getoptionvalue().

Github: #412
cgroups plugin: Use cu_mount_checkoption().

cu_mount_checkoption() behaves a bit like strstr() in that it returns a pointer
into the buffer. cu_mount_getoptionvalue() allocated memory that was never
freed, slowly leaking memory (although very little).

Github: #412
Merge remote-tracking branch 'github/pr/413' into collectd-5.4
write_riemann: Add extra meta strings as attributes in notifications
correct default write_graphite protocol in manpage
Merge remote-tracking branch 'origin/pr/409' into collectd-5.4
collectd.conf: Added example cgroups plugin config section.
collectd.conf: Added example df plugin ValuesAbsolute/Percentage options.
collectd.conf: Added an example write_riemann TTLFactor option.
write_riemann plugin: Receive acknowledge message when using TCP.

Not receiving an acknowledge message when communicating with riemann over TCP
will cause the riemann instance to eventually hang for extended periods of time
because of resource exhaustion.

Took the time to reaorganize the riemann_send function to simplify locking.
switch default write_graphite protocol back to TCP

The *default* protocol was switched to UDP in 498a0dcd, when UDP support
was added to the plugin.

Switching this default back to TCP, because it makes the plugin break
for users upgrading to 5.4, and also because the UDP listener is disabled
in a default graphite installation (cf.
https://github.com/graphite-project/carbon/blob/0.9.x/conf/carbon.conf.example#L78)

Fixes GH#428
Display status of mic module