There's no need to check whether the queried address is a subdomain of
in-addr.arpa, since this handler is registered with the muxer under
that domain anyway.
(Also, remove a magic number)
This is the simplest thing that works, is consistent with what happens
if there's a local answer, and avoids having all multicast requests
last 250ms or more.
Since we're no longer waiting *at least* the timeout period, I've
bumped the multicast response timeout up to half a second.
There was also a bug whereby the query would be entered into the
inflight map even if the socket write had failed (and the channel had
been closed).
1. The local domain is now ".weave.local", which is safer from TLD
pollution
2. If the name given for an IP isn't a subdomain of the local domain,
ignore it
While we're only reacting to containers going away, it's more
convenient to bundle the docker events watcher into the server.
I've added a flag to switch it on; and switched it on by default in
the container.
I also implemented `Zone.DeleteRecordsFor(ident)`, which removes all
records for a particular container.
One minor change to the structure of the code is that the Zone is now
constructed *outside* the server, and given to it and the updater.