[Reviewer: Andy] SNMP bugfix

It turned out that the issue was that I was iterating over a map while erasing items from it. This meant that I didn't fully remove my OID subtree (with random values not being removed), and so stale values stuck around.

Without this fix, the reported SNMP values will be mostly accurate, but one of the values may occasionally be stale (which led to oddities like the high-water-mark being below the low-water-mark because it was a few seconds older).

This includes a couple of "dump_" methods for debugging which I've left in to speed up debugging in future.