Problem: if WiFi interface changes, zbeacon gets confused

Solution: if sendto() hits an error, this is most likely an ENETUNREACH
error, and we can deal with this by closing the UDP socket and opening
a new one, on whatever interface is available. If there's none then the
zbeacon class loops until there's one available.