Shelve: The snapshot should be removed when delete instance.

When deleting a vm with state "shelved" or "shelved-offloaded",
the vm's snapshot like ‘shelved image’ should also be removed.

Change-Id: Ie9b0f8dec8f85351ef188f70e0fe9414e332aafe
Closes-Bug: #1259462
Make volume_snapshot_{create,delete} use objects

This patch makes the volume_snapshot_create and delete methods use
new-world Instance objects.

It bumps the version of the compute rpc API, and starts passing objects
to the rpc layer. It also makes the driver methods that touch instance
use the dot notation to access the attributes.

It also makes sure that the backwards compatibility is kept by
decorating the manager methods with object_compat decorator.

Part of the blueprint: icehouse-objects
Part of the blueprint: clean-up-legacy-block-device-mapping

Change-Id: I967061cef36b4da06073736fce871fc3f3d28f97
Make snapshot_volume_backed use new-world objects

This patch makes snapshotting of a volume backed instance code path use
new-world block device objects, and thus transitions snapshotting to use
block device mapping v2 data format.

This means that all images that are created by snapshotting volume
backed instances after this change will have new block device mapping
format in their properties. To be able to distinguish between those, an
additional field (bdm_v2) was added to the image properties. This flag
will be taken into account when booting an instance and all necessary
conversions will be done so that both formats are supported. The legacy
block device format will continue to be supported in images, even when
we deprecate it in the API (after v2).

Another noteworthy point is that block device mapping data added to the
image will no longer contain the device name, as it will be dependent on
the configuration when booting a new instance. The mapping will however
keep the boot order.

The code in snapshot will also take care that all of the mappings
present in the image properties are handled and not re-created on
booting an instance from the snapshot image.

Part of the blueprint: icehouse-objects
Part of the blueprint: clean-up-legacy-block-device-mapping

Change-Id: I441cf8f2df0b92a9cc4096e77a90c37a06270eb5
Merge "Make volume_snapshot_{create,delete} use objects"
Merge "Make snapshot_volume_backed use new-world objects"
Merge "Shelve: The snapshot should be removed when delete instance."