Add an etcd watcher class.

Also a few cleanups I forgot in previous commits, like not using a temporary object when using ```UpdateLeader```, and using an ```unique_ptr``` in ```RequestDone```.
could CHECK that last_index_seen_ < modifiedIndex ?