etcdserver: correct timeout and streaming handling

This reintroduces the 'stream' parameter to support long-lived watch
sessions. These sessions respect a server timeout (set to 5 minutes by
default).
etcdserver: use Context to communicate timeout, and add tests
etcdhttp: add test for streaming watches