This is an attempt to fix a problem where sources would become stuck on master -> slave state transitions.
This allows running the service on a single port: with the --enable-icecast-proxy option, all requests can go through redirectord.
The etcd server now returns the current index on a failed Create() call, so we can use that to start the slave Watch.
Fixes a bug where master changes that did not involve the local node were not triggering updates.
Make progress anyway when the history is gone.
go-etcd now closes the channel passed to Watch() on error, so we need to restart the syncer every time and use a temp channel.