Fix uv__io_stop assertion failures

When running an application that uses many different ZooKeeper connections, and experiences many 'operation timeout'  errors, I would frequently see this failure:

    Assertion failed: (loop->watchers[w->fd] == w), function uv__io_stop, file ../deps/uv/src/unix/core.c, line 701.
    Abort trap: 6

After some debugging here is what I saw:
* An initial call to zookeeper_interest returns a file handle, let's say fd=100
* The code starts watching that file handle with uv_poll_init / uv_poll_start
* Later, a call to zookeeper_interest with fd=100 fails with operation timeout.  That triggers the `if (rc)` block, which does not stop watching the file handle
* After some time a new call to zookeeper_interest returns the same fd=100 handle again, for a different client.
* Eventually, uv_* is called with fd=100 and libuv fails with the assertion above.

The changes I've attached will always call uv_poll_stop, even in the case of an error, so that the file handle will be stop being watched.  After my changes, I can run my many-client, many-timeout test without any assertion failures.
You can safely call uv_poll_stop directly, it wont do anything if the handle is not active.