Makes versions API output deterministic

Makes the order of available versions that the API version
information is returned to clients deterministic. This is
necessary to ensure that with PYTHONHASHSEED to fixed to 0 the
unittests will consistently pass.

Change-Id: I5b7f6b7f061424adc2263c485562e72c7cc29255
Partial-Bug: #1350287
Convert last use of direct database instance fetching from network api

This is the last db.instance_*() call in network/api.py. This patch
converts it to use the Instance object.

Related to blueprint compute-manager-objects-juno

Change-Id: Id7897da6daa3d76a95403466be17f9eaef8b7850
Convert network/api.py uses of vif database functions to objects

This makes network/api.py use the VirtualInterface object instead of direct
database queries. This is the last direct/obvious use of nova.db.* in the
network api.

Related to blueprint compute-manager-objects-juno

Change-Id: Ia3eb1694f3708aeceb4c77876a210a7cb6532be1
Fix rebuild with cells

When rebuild_instances switched to a compute task it broke
cells since the cast was dropped as it didn't match.

This change moves the rebuild_instances to conductor and
also adds some unit tests checks on the compute
task integration point.

Change-Id: Ic1c575fbca72f1cd34b1dbc6f82023e5b2b392e2
Closes-Bug: 1348642
Merge "Convert last use of direct database instance fetching from network api"
Merge "Convert network/api.py uses of vif database functions to objects"
Merge "Fix rebuild with cells"
Merge "Makes versions API output deterministic"