Re-implement watcher.py using low-level kazoo watchers.

AS explained in DM-513 the threads that were started by the previous
version of the script did not make much sense so they were removed.
High-level wather class ChildrenWatch has issues when "root" node is
deleted. To workaround this issue high-level watchers were replaced
with low-level watchers (callables passed to get(), exists(), or
get_children()). One additional watcher was introduced to restart
"children" watcher when root node is re-created.

Even with all above changes there is still a potentially serious
issue with missing updates to zookeeper nodes. It is inherent to
one-shot zookeeper/kazoo watchers and I do not see a way to fix it.