Treat instance objects like objects in set_admin_password flow

The set_admin_password API path uses instance objects but does a direct
database update in nova.compute.api and accesses fields on the object
like a dict.

This patch changes the code to update the database via the
Instance.save() method and accesses fields on the object using dot
notation.

Part of blueprint compute-manager-objects-juno

Change-Id: Iff82b19ba4ea007930d20d26a613687484392861
Remove unnecessary else block in compute manager set_admin_password

The else block is useless since the conditional block before it raises
an exception, so remove the else.

Change-Id: I1cd859a3f20b1ab9ab2502967526d306ebca9961
Remove variability from object change detection unit test

Insure hashes of object representations are consistent by normalizing
data using sorted lists (as compared to dictionaries whose keys and
values are listed in an arbitrary, variable, dependent order:
https://docs.python.org/2/library/stdtypes.html#dict.items).

Closes-Bug: #1325246

Change-Id: I1344a820263683a024818d181ec6ee08e5e18984
Merge "Remove variability from object change detection unit test"
Merge "Treat instance objects like objects in set_admin_password flow"
Merge "Remove unnecessary else block in compute manager set_admin_password"