watcher: re-register watches when a connection is suspended.

While zookeeper documentation says that watchers are kept when
transitioning from suspended to connected, this seems to not be the
case. The `DataWatcher` pattern shipped with Kazoo explicitely
re-register watchers when the connection is suspended even if we don't
transition to LOST state:
 https://github.com/python-zk/kazoo/issues/29

We do the same.

The unit test therefore needs to do several additional iterations to
work properly.