Make a few places tolerant of sys_meta being a dict

This will be necessary as we start to introduce objects with
real dicts in system_metadata. These are the common spots that
need to be ready ahead of time. The rest are at the actual use
sites and can/will be replaced when individual uses are
converted to objects.

Related to bp/unified-internal-objects

Change-Id: I8314e0d52ec2ae800765f60ce58ce9b309d7d513
virt: Move generic virt tests to nova/tests/virt/

In the interest of better organization, this patch moves generic virt testing
code into nova/tests/virt.

Change-Id: I79473726a848f0abbcb13865efe30e02aea09ae5
Better error message on malformed request url

The existing error message just said 'malformed url' which isn't
super-helpful. The new version expalins that the project ID in the URL is not
matching what's being passed in with the context.

Change-Id: I8e5b71fcd51ab3628425b53356f9671f3a2402c0
Merge "Better error message on malformed request url"
Merge "virt: Move generic virt tests to nova/tests/virt/"
Merge "Make a few places tolerant of sys_meta being a dict"
Merge remote-tracking branch 'm_src_repo/citrix-fixes' into build-temp