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.
Dictionary keys don't need to be strings. You can use any hashable type, like a tuple.

```python
servers[('127.0.0.1', 1337)] = 'foobar'
```