MDNS and DNS Service Discovery library

Hi @kasper

mDNS is a cooperative standard, with no central authority, so that every host has to listen for messages that say things like "Hi, I am new here and I want to be called Particle1" so they can say "No, I already have that name, try again." If any host is not listening for these messages, the whole thing doesn't really work.

It is expected that these messages do not come in at a very high rate and are short so they should not take a lot of time to process. But still it is an unavoidable overhead in mDNS.

Just one other point: there is another mDNS library based on the Adafruit library that is described in the link below, but I don't know if it has been ported to Photon yet.