Handle unexpected errors in etcd watcher

Retry watches that fail due to unexpected error e.g. server timeout. Previously, vulcand would exit after exactly 5mins, with this change my server has been up for 12hrs so far...

Fixes #55

The following error is output to log when the server times out the watch:
```
ERROR Aug  7 19:14:11.757: [etcdbackend.go:413] etcd watcher returned error: 501: All the given peers are not reachable (Tried to connect to each peer twice and failed) [0]
```

But reconnects and seems happy despite that.