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.
Problem: beacon reset did not work properly

Solution: handle sendto return code accurately. Also only show the
"cannot find interface" error once at start of app, rather than at
every poll interval if/when the interface is down.
Merge pull request #784 from hintjens/master

Problem: zbeacon does not recover from network changes