Gaurd against infinite memory leak in dgram

There is a unbounded array in the dgram library. We've seen this array have over 250 thousands items in production heap dumps.

We put about a huge amount of traffic through our statsd UDP socket. When we get DNS failures this unbounded queue buffers
all statsd data which causes a huge memory leak.

cc @tjfontaine @indutny 
Inside `onListening` I remove the listener manually. I should probably remove the listener as the first line to avoid a sync race condition.