move zk code for the service watcher into the zzk

Genericized listeners and moved service watchers into the zzk






In zookeeper, there is a bug(?), that if the directory in which a node is created doesn't exist, the node that is created doesn't get populated with any data.  So to remedy that I changed the logic such that it always sets the node's data regardless of whether the node had to be created first.