Add host field to ComputeNode

In order to remove the Service dependency, we need to add
the host field to ComputeNode when creating an entry

Partially-Implements blueprint detach-service-from-computenode

Change-Id: I353eb87f915a5ab7d492c2dbd028a839aa5041a6
fix pep8 errors that apparently slipped in

Apparently, a couple of H302 issues have slipped into Nova, possibly
due to hacking releases or a bad merge commit. Fix these as they are
blocking some other patches.

Change-Id: Icc42e060492bc74febc9414b63970ee71fb9c27c
Merge "fix pep8 errors that apparently slipped in"
objects: introduce numa pages topology as an object

Introduces object NUMAPagesTopology also remove the one
from hardware.py which will be not used.

Work-Item: Enhance libvirt driver to report available
           large pages per NUMA node in the host state data

Change-Id: I004c87c5c5b2b42fda04b5754b77a83fadd44281
Partial-Implement: blueprint virt-driver-large-pages
Merge "Add host field to ComputeNode"
Merge "objects: introduce numa pages topology as an object"
Refactor unit tests for scheduler weights

Remove 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
then mock it's db calls. Additionally, weigher classes are referenced
directly instead of having the weight handler load them first.

Related to blueprint scheduler-optimization

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.

Related to blueprint scheduler-optimization

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.

Related to blueprint scheduler-optimization

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