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
```
actually, this is buggy. `ResponseRecorder` doesn't write it implicitly, but the actual ResponseWriter does, so now we end up with two :-/
```
< HTTP/1.1 200 OK
< Content-Type: application/json
< Transfer-Encoding: chunked
< Date: Wed, 24 Sep 2014 00:18:03 GMT
< Transfer-Encoding: chunked
```