Client now operates more like a server, caching all responses

MDNS responders will often send extra records before they are requested (eg SRV and TXT records)
and not respond to explicit requests for the same record until the 1 second cooldown period.  To
handle this, cache all records and replay the cache when to new queries.