Add metrics builder
Fix many bugs in registry handling of multiple pushers.

Firstly, a change in JVM version Processing was running against caused
a bunch of ConcurrentModificationExceptions to get trapped.  This was
bad, because it stopped the whole detection system from working
properly.

Secondly, we need to rework the device expiry system;  we can't modify
pusherMap from anywhere that's iterating over pusherMap...  disabled
for now.

Also, reduced maximum accepted latency.  Implemented better trapping of
ConcurrentModificationExceptions, and added a mutex around the update
thread (it's possible, on a multicore machine with multiple network
cards, to receive two announcements at once-  it would be better if we
did not die as a result.)