Refactor unit tests for scheduler weights

This change simplifies tests by making use of FakeHostState() to avoid
having to go through host manager and to mock it's db calls.

Change-Id: Ifd3577aec6c5fc82e4864623e0545f380fb75b6e
Make scheduler filters/weighers only load once

Right now, filters/weighers are instantiated on every invocation of the
scheduler. This is both time consuming and unnecessary. In cases where
a filter/weigher tries to be smart and store/cache something in between
invocations this actually prohibits that.

This change make base filter/weigher functions take objects instead of
classes and then let schedulers create objects only once and then reuse
them.

This fixes a known bug in trusted_filter that tries to cache things.

Change-Id: I3174ab7968b51c43c0711033bac5d4bc30938b95
Closes-Bug: #1223450
Pre-load default filters during scheduler initialization

To avoid a time penalty for the first caller, make scheduler pre-load
default filters at startup.

To avoid extra initialization during testing, stub this out where
applicable.

Change-Id: Ie982387cc7bb5425e9cb8f4ca328caf6eae35c08
Cleanup and removal of unused code in scheduler unit tests

This change does some refactoring of test_filter_scheduler.py and
additionally remove a bunch of unused scheduler test code.

Change-Id: Ife979bca1699fc06e5a40264ba3e8173b9e0143b