The original design for host filtering in the scheduler required the
entire filtering process be contained in a single class; contrast this
with the design for weighting the hosts, which allowed you to specify
a list of functions that would apply various weighting factors to the
hosts.
This commit modifies the filtering process to resemble the way that
the weighting process is designed. Filters can now be small, focused
classes, and you specify which filters to apply by setting the
'FLAGS.default_host_filters' flag to a list of the filter classes
that match your needs.
This is a port of the code from Launchpad, where it was orphaned:
https://code.launchpad.net/~ed-leafe/nova/scheduler-multifilter/+merge/72478
Change-Id: I5f3eff6f21409a9f0eddda3392e9ff9d03039ebe