Refactor the code for DNSSD in to Discoverer class

I have done a little refactoring to put all the code for DNSSD to a small Discoverer class. It handles registering and finding servers.