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
```
Arguably we should actually differentiate here between streaming/non-streaming cases and only use a ChunkedWriter for the former.. But in that case, we would need to define the behaviour of a non-streamed watch timing out - what gets sent to the client? Thoughts?