When connections are broken on Watch, write fewer errors to logs

Watch depends on long running connections, which intervening proxies may break without the control of the remote server. Specific errors handled are io.EOF, io.EOF wrapped by *url.Error, http connection
reset errors (caused by race conditions in golang http code), and connection reset by peer (simply tolerated).
minor minor minor nit: make emptyWatch itself be a ```chan Event```, and return a closed channel in NewEmptyWatch?