Remove the _clear method and do not reset the job_watcher

The _clear method is only used in one place (in close) so the
benefit of it being a function is not really valueable so move
its logic to the close method itself.

Also fix that the job_watcher does not need to be reset since
it can now survive session lose/disconnection, setting it to
none is not useful anymore and actually creates more watchers
that provide the same data (which is bad).

Change-Id: I243ec0551a341df74f478b0161ffd559a75278fe
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
Cleanup zookeeper integration testing

In the persistence tests only use zake when zookeeper is
not available (and of the right version). When zookeeper is
available skip running zake.

In the jobboard tests split out the tests which are not
specific for zake into a base class (allowing for a future
commit to add a zookeeper integration test).

Change-Id: I50d51639a7f6c03c29d559c485676fddb9a7cf20
Add a zookeeper jobboard integration test

Test the base jobboard tests against a real
zookeeper server if one is available (if not
skip the tests).

Change-Id: I3a4d582e347ce9de48a19a17f5ce890590a4adcb
Merge "Use a more stable flush method"
Merge "Cleanup zookeeper integration testing"
Merge "Add a zookeeper jobboard integration test"