Use a more stable flush method

Instead of using the zake provided flush method (which
does have issues, since it does not guarantee that the
associated watches will have been called) instead use a
new method which creates nodes, waits for there watches
to be triggered, does other work, and then deletes the
node and waits for that watcher to be triggered; this is
more stable (as it depends on the linearity guarantee
of zookeeper and the kazoo threading model).

Change-Id: I12fd9c7bcc5cd9009b4175166edfc924e94161bf
Merge "Use a more stable flush method"