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.
If this crashes you'll never get anything on the decode channel again.  Seems like you want to to either error out of the loop (return err from receive) or recover and continue.