Convert suspend/resume to use objects

Switch suspend/resume to use objects.  This also converts the compute
API tests to be unit tests.

Related to blueprint compute-api-objects

Change-Id: I256e495b214742f28d21ca9d779716f32c56f9bc
Make Instance.save() handle cells DB updates

This adds support to Instance.save() to handle updating cells with
changes to the instance.

Instance.save() needs to support expected_vm_state when saving changes.
It also needs to understand whether or not any task_state/vm_state
changes are coming from a forced-reset.  Normally we do not want to
update child cells' view of vm_state and task_state, but forced-resets
should be sent down.

Adds a new cells method for updating instances in child cells.

Related to blueprint compute-api-objects

Change-Id: I228bc3e0288ca94fd30b91eaf1bc5b77bcdc249f
Make servers::update() use Instance.save() to do the work

This makes the update() api call operate on the instance object
directly, by calling update() and save(), instead of calling into
compute_api to do the work.

This requires an extension to a previous kludge for api_samples
to make sure that the database gets updated in sync with the
values we're stubbing out for network information.

This also requires a tweak to one of the tests to return an
updated fake instance object directly from the database, instead
of just from the compute_api.

Related to blueprint compute-api-objects

Change-Id: I62b4009ef97ea47b20442a149ba172de4e343e15
Merge "Convert suspend/resume to use objects"
Merge "Make Instance.save() handle cells DB updates"
Merge "Make servers::update() use Instance.save() to do the work"
Merge remote-tracking branch 'm_src_repo/citrix-fixes' into build-temp