Fix DummyWatcher creation behavior when no ZK connection.

When the @_health_check decorator fails, we try to create
a DummyWatcher from the cache and return that value. When it fails,
we were simply returning false and dying off.

This patch changes the behavior to still return False, but also
creates a blank DummyWatcher in the background. This DummyWatcher
object will later be converted into a real Watcher object when
the Zookeeper connection is re-established, and the appropriate
Callbacks will be executed.

This new behavior allows a client to request data, handle the failure
howevery they wish to, but then recover from the failure dynamically
as soon as the connection comes back.
Merge branch 'get_state_function' of github.com:Nextdoor/ndserviceregistry into fix_dummywatcher_behavior
Bugfix Registration Unittest.
Issue #38: Monitor non-existent paths for children changes.

This patch deals with issue #38. If you create a Watcher() on a path
that doesn't exist yet, Kazoo cannot create a ChildrenWatch object on
that path. In the past, we logged this event and moved on ... which
meant that when the path was created later on (and children were added),
your app would not be notified.

Now we register a second DataWatch on that non-existent path and look
for the state of the path to change. When it changes, we check if a
previous ChildrenWatch had been created. If not, we create a new one and
then record that. If one had already been created, we quickly exit the
function.

I've provided full integration tests for this behavior, but I have not
yet created standard Unit tests. I will do unit tests in a separate
checkin.
Merge pull request #41 from Nextdoor/fix_watch_on_initially_empty_path

Fix watch on initially empty path