Move JSON filter unit tests into own file

Separates JSON filter unit tests from test_host_filters.py and refactors
the test methods to remove some cruft.

Change-Id: I31b9b409f4bbc17074067f42ea9da1418d963086
Separate filter unit tests for agg extra specs

This patch separates the unit tests for the aggregate instance extra
specs filters out from test_host_filters.py. In the process, it converts
the unit tests to NoDBTestCase and mocks out any database calls.

Change-Id: I7b9f186052825667b585674491d0ddf6b566f8de
Run build_and_run_instance in a separate greenthread

If we're doing a lot of build operations, we are using a large portion
of the limited rpc worker pool for long periods of time. Since we may wait
on external services (like neutron or glance) during those times, we could
fully deplete that pool.

This patch makes us spawn a new greenthread for that task and return the
rpc worker to the pool. Due to some funkiness with the stack of decorators,
this breaks the inner function out to an object method, which is probably
good anyway, given its size. This also moves the wrap_instance_event
decorator to the inner function so that the start and stop events properly
demarcate the actual task and not just the (now very quick) RPC call.

Change-Id: Ife712c43c5a61424bc68b2f5ab47cefdb46ac168
Closes-Bug: #1372049
Merge "Run build_and_run_instance in a separate greenthread"
Merge "Move JSON filter unit tests into own file"
Merge "Separate filter unit tests for agg extra specs"