This adds a new scheduler driver, CachingScheduler
It currently subclasses the filter scheduler and only adds caching of
calls to host_manager.get_all_host_states.
It relies on there being a small number of schedulers, ideally one,
calls to consume_from_instance within the filter scheduler to update the
current cached list of hosts, and a low rate of deletes.
It introduces the new config value:
scheduler_driver_task_period
The periodic task it controls is used by the caching scheduler to fetch
an updated copy of host_manager.get_all_host_states.
If your value for service_down_time is much smaller than
scheduler_driver_task_period, there will be issues with hosts appearing
to be dead, just because the list of hosts is being cached. Correct
configuration of those two values can avoid this issue.
DocImpact
Part of blueprint caching-scheduler
Change-Id: I2eb873ce8024a576e597205e2d52b5d5e8aee97a