It turns out that the ComputeCapabilitiesFilter built-in to Nova
doesn't respect capabilities passed in scheduler_hints, so we can't
use it for predictable placement. Adding this filter to the
undercloud Nova filter list will allow us to do so.
Instead of pulling in all of Nova as a test requirement, I've added
a fake_nova module to the source tree, which is injected as 'nova'
when unit tests are being run. A check is included to make sure
nova isn't being imported for real, as well as a README explaining
the reasoning behind the fake_nova module.
Change-Id: I0618a3b9e3c33af7cdc78db4b6994d463b8aeda9