1. Add watch/cancel request 2. Add necessary fields in response to return watch error 3. Add watch_id into watch response
unreachable code
When a watch stream closes, both of the watcher.Chan and closec will be closed. If watcher.Chan is closed, we should not send out the empty event. Sending the empty is wrong and waste a lot of CPU resources. Instead we should just return.
Implement watch service and hook it up with grpc server in etcdmain.