better SNMP authentication handling

always trying all SNMP version is a waste of time, and SNMPv3
authentication model is utterly complex. So let's allow the user
to define arbitrary authentication specifications, even if that's
slightly more complex to use.