Refactor unit tests for scheduler weights

This change removes external depenencies from scheduler weight tests in
an attempt to make the tests cleaner and to only test the weight code
itself.

FakeHostState() is used to avoid having to go through host manager and
to mock it's db calls. Additionally, weigher classes are referenced
directly instead of having the weight handler load them first.

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