Fixed ZooKeeperNode to prevent duplicate WatcherS

Duplicate WatcherS were being added on failed getData calls
because a new Watcher was passed into the getData call each time. This
change creates a Watcher that is .equals so that the Set of Watchers
within the ZK library doesn't grow when there are request failures.
WatcherS are now instance fields

applied feedback from @jsirois
Merge pull request #177 from foursquare/fs-zk-20130819

Fixed ZooKeeperNode to prevent duplicate WatcherS