Use the correct watchers
Use the correct watchers

Create two sets of watchers, data watchers (used for
data changes, deletions, set) and children watchers (used
for children change notification).

This corrects how the wrong watcher/s was triggered in
certain functions, making it so that the right watcher
set is being triggered (and cleared as needed).

Breaking change: renames client watchers property to children
watchers and data watchers (since there is now two sets of
watchers).

harlowja/Zake,yahoo/Zake