Pass expected_attrs to instance_get_active_by_window_joined

This change sends the expected_attrs from the instance object
API down into the DB API so the client can filter on which
columns he actually needs to join when getting all instances
in a given time window.

The simple-tenant-usage API and _instance_usage_audit periodic
task are the only things calling this API and they already
provide specific expected_attrs so there is no risk of
regression due to the change. The DB API is backwards
compatible if columns_to_join is None, and expected_attrs
defaults to None already.

Change-Id: I3d8b5a1fd58783e465001bb5f10b5b87d69198d9
Partial-Bug: #1383469
Introduce a .z version element for backportable objects

This makes the object versioning code tolerate a .Z element to the version.
It is ignored for the purposes of triggering a backport, which means that we
can backport additive changes to a stable tree, denoted by the .Z element,
but which will not cause version comparisons to consider them incompatible.

There isn't actually much to change to make this work properly, aside from
avoiding a backport for only a .z in NovaObjectSerializer. Most of this patch
is actually just adding unit tests to prove that we tolerate the .z in the
version element in our compares, as well as confirming that extra stuff in
the data portion is ignored if our local object implementation doesn't know
about it.

Change-Id: Ic71268c036432c42f0d0ce7dfcb427abb65a24b4
Prevent admin role leak in context.elevated

context.elevated was creating a copy of the current context then adding
'admin' to the roles of that context. This should be a deepcopy, otherwise
'admin' is added to the original context too.

Change-Id: I8ab00c88a8e76a14fb9f4ae96dfdb5f018fc2d0f
Closes-bug: 1386932
objects: make instance numa topology versioned in db

Makes data stored in the database for numa topology
versioned by using object framework.

Change-Id: I0e8ca96296fb88aa7a26fae1e476275a23e0c6bb
objects: Add test for instance _save methods

7335af1ea fixes a bug with the instance save() and when it would call
the related _save methods for related objects.

This patch adds a test for it so that we are sure it does not regress.

Change-Id: Ie4b731b4b419725482b64b7aa1f19e7c5474c349
Merge "Introduce a .z version element for backportable objects"
Merge "objects: Add test for instance _save methods"
Merge "Prevent admin role leak in context.elevated"
Merge "Pass expected_attrs to instance_get_active_by_window_joined"