Cancel watchers after the response is returned

Fixes https://github.com/coreos/etcd/issues/328