etcdserver: handle watch timeouts and streaming

```
; time curl localhost:4001/v2/keys?wait=true
context deadline exceeded

real	0m10.009s
user	0m0.004s
sys	0m0.001s
```
@jonboulle Wrong gogoprotobuf version. you have to reset the head. :(