Make live_migration use instance objects

Since live_migration moved to the task API, we've been passing
instance objects down to compute/rpcapi, but then converting them
to primitives at that point. This removes that, enables compatibility
with older code, and makes the live_migration() use objects.

Note that live_migration() is different from all the other calls
we use the object_compat decorator on, since instance is not the
first parameter. Because of this, and because it's called from a
single place where we know what expected attributes we should have,
this just adds the compatibility code directly into the method,
instead of trying to complicate the decorator for this one-off
case.

Related to blueprint compute-manager-objects-juno

Change-Id: Ibbad57569c67db6ddc2e6cc41ea49f77c46d761e
Merge "Make live_migration use instance objects"