Allow watch operations to run longer than the http.Server timeout

The default http.Server implementation sets a global write deadline on all handled responses.  Watches depend on waiting for long periods before returning.  A watch implementation should be able to wait
longer than the default server timeout.

This commit alters watch to hijack the http response writer, gain access to the underlying connection for setting the write deadline (which must be reset after every write), and also properly handle chunked encoding of the http response (it's not possible to game the write deadline via the ResponseWriter by writing empty lines because we don't know what the servers deadline is set to).