Add tests for adding/removing watches

The remove-watch method for distributed atoms and refs appears to have been broken for some time.
I've added some tests for adding and removing watches to zk-atoms and
zk-refs, which fail as of this commit but are fixed in the next one.
Corrects implementation of removeWatch (issue #11)

As @jafingerhut pointed out, there are two apparently incorrect uses
of swap!, one in atoms.clj and one in refs.clj. In both cases, the
error is in the removeWatch implementation (shown to be broken by the
new tests in my previous commit). This commit fixes resolves #11 and
resolves #3. I can't tell for sure yet, but I suspect that it might
help with #10.