Refactor main.go to extract testable runMain() function, make icmpListenPacket and syscallExec injectable, fix worker pool tests to properly fill queue buffers (n*4 capacity). Add comprehensive tests for CLI argument parsing, ping exec fallback, ICMP timeout paths, self-update happy path, and SNMP context cancellation.
Previously each OID was fetched individually, meaning 1000 OIDs required 1000 round trips. Now OIDs are batched into groups of 60 (the SNMP max PDU size), reducing round trips by ~50x. Also pre-sizes the OID value map to avoid repeated rehashing.
use GETNEXT-based WalkAll for v1 devices instead of BulkWalkAll