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
Refactor / modernize config parsing with configfile helpers

... as requested by @octo
Adapt to @octo's comments for PR #344
Document changes, mostly taken from @vbartoni's original work
Report a CPU "active" value, summing non-idle values

This small change provides a per-core aggregate of non-idle
values for CPUs. This is a good indicator to apply a threshold
on (especially if aggregated by means of the aggregation plugin).
Merge pull request #362 from mikepilat/add-snmpv3

Add SNMPv3 authentication and encryption support
Merge pull request #498 from pyr/feature-relative-load

Feature relative load
Merge pull request #499 from pyr/feature-cpu-active

Report a CPU "active" value, summing non-idle values
Adds Blacklist/Whitelist support to snmp plugin

Adds two options to snmp plugin Data Section:
	- Ignore -> A List of string containing patterns to blacklist
	- InvertMatch -> A Boolean value to tell if using blacklist or
	  whitelist (true is whitelist, false (default) is blacklist)

Signed-off-by: Christophe Courtaut <christophe.courtaut@gmail.com>
fix wg_send_buffer to reconnect tcp sockets on failure
Merge pull request #414 from kri5/master

Adds Blacklist/Whitelist support to snmp plugin
Merge pull request #502 from rtkmhart/write_graphite_issue_430

Fix issue #430 where write_graphite fails to reconnect