Add the ability to watch the serving STH and the cluster node state objects to EtcdConsistentStore.

For ```base```, it's really an ``util::Executor``` you want here, it doesn't have to be a ```libevent::Base```, right?

FYI, ```shared_ptr``` does the right thing with polymorphic pointers, a ```shared_ptr<libevent::Base>``` can be passed to something that expects a ```shared_ptr<util::Executor>```.