Refactor compute API's delete to properly do local soft_deletes

Right now, if you try to soft_delete something that is on a downed
host, the _local_delete code will actually hard-delete it, which
isn't what you would expect. The compute init code already handles
the case of soft-deleted instances while it was down, so we just
need to alter the frontend behavior.

Note that tests for this are added in the next patch, which was
written first and because there would be a ton of conflicts
generated by inserting them here.

Change-Id: I09f33bbcd7799b2bc1289b6100b291a7e6b26d9c
Make delete/soft_delete use objects

This makes the delete and soft_delete paths use objects.

Related to blueprint compute-api-objects

Change-Id: I74bf4ad99e28d4c349c2f739d8d515e432913194
Fix multi availability zone issue part 1

Current aggregate APIs allow user to add multi
AZs to a host, but Openstack support single AZ
of a host. When booting an instance, nova uses
the first AZ assigned to a host,even if user
assigned multi AZs to the host and user chose
the second AZ to boot an instance. So multi AZs
aren't supported by current Openstack design,
we should fix aggregate APIs to align the design
. This patch is for limit user to add multi AZs
using aggregate-add-host API.

The part 2 limits user to add multi AZs using aggregate
update and aggregate metadata update API, here is the
link:
I18ad1ac22c6aee298ccc75c978b85241ae1ac616

Fixes: bug #1196893

Change-Id: I788782a9f21ec2672551f75123753175bb268586
xenapi: Rename imageupload image

The imageupload driver concept has helped detangle some of the image managment
code in vm_utils.

It would be nice to extend that benefit to download as well, with an
additional benefit of being able to share more code between the upload and
download paths.

This is the first in a series of patches that aims to to do just that. The
first step is change the name so that it's not just 'imageupload' but
'image'es in general that the driver is managing.

DocImpact

Change-Id: Ia18b82568147a9a40b0da67d74bf20b12d08b9a9
Merge "Refactor compute API's delete to properly do local soft_deletes"
Merge "xenapi: Rename imageupload image"
Merge "Fix multi availability zone issue part 1"
Merge "Make delete/soft_delete use objects"