Need to do the special-case merge before `n.Latest.Merge()`, otherwise
it picks just one set of controls.
Also modified the test to call `Merge()` where the problem happened.
The only place Counters are used is in rendering, for the number of
nodes under a topology, so the overhead of holding a unique data
structure in every Node is unwarranted.
Counters are not set in the probe, so we don't need any
backwards-compatibility in report decoding. Similarly they are not set
until after all nodes are merged, so we don't need that logic.
The fixup() method was modifying a copy of its input, so you could get
duplicate keys in the output. Change it to return the new slice.
Thankfully this is rare: in most cases WithLatests() is called with
fields that are not duplicates of existing ones.