ClusteredService: a utility class to help arbitrate a service among multiple masters

This is a new base class 'ClusteredService' to manage a polling-based arbitration for services. It's based on the version Dustin implemented in the Schedulers base class; I will post another patch soon that refactors that code in terms of this new base class.