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
Merge pull request #362 from mikepilat/add-snmpv3

Add SNMPv3 authentication and encryption support