Etcd watcher

Building on previous PRs, this implements etcd's watch in a form that I can hook up to the apiserver. Only the latest commit is unique to this PR.
Any reason this isn't part of TestWatch?  Feels like this is the real test case (which should be prominent in the TestWatch method), and the rest of the code is the boilerplate necessary to make the test.