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.

I think the last time I used "goto", I was using Borland Turbo C. :-)
Implement EtcdConsistentStore::SetClusterNodeState()
Merge pull request #248 from AlCutter/node_status

Implement EtcdConsistentStore::SetClusterNodeState()