MDNS and disappearing network interfaces

This fixes the issue I describe in issue #2

When a service event is encountered, the Browser now caches the interface on which it took place.  When subsequent events occur, if the call to dns_sd.if_indextoname(ifaceIdx) fails, it looks the interface name up in the cache.  If the name is there it's returned, otherwise the original error is thrown.

Also includes a unit test..