Zeroconf support for headless server

Allow flask server to broadcast over public ip. Use Zeroconf protocol to publish the service (using avahi), allowing any client with Zeroconf to search and connect to any Freeseer client on their network.
So the minimum timeout is 5 what? I'm assuming it's milliseconds if you're using `time.sleep(...)` underneath.

You can also avoid this entirely by just using `min(timeout, 5)` as the argument to `discover.search`.