Objectify instance_action for cell scheduler

This is a refactor change to make cell scheduler use InstanceAction
class method instead of compute_utils, so that all instance action can
be manipulated through object model and instance action related code in
compute_utils can be deprecated.

This is a part of: blueprint make-instance-action-use-objects
Change-Id: I920c8bf809200e6fc2c0329c11ea4be94dc71158
Make volume attach use objects

This patch does 3 things really. Firstly it adds disk_bus and
device_type parameters to reserve_block_device_name compute rpc method,
thus laying the groundwork for the ability to specify those when calling
attach. Further to that - it makes the attach volume code use new-world
objects. These two changes were done in a single commit to avoid
unnecessary rpc version bumps.

In addition to this, attach_volume method of the compute manager has
been refactored to use DriverBlockDevice objects and their method - thus
getting rid of some code duplication.

Finally we move block_device module utility method
instance_block_mapping to use the v2 block device data format and thus
also objects, and do some cleanup around how it was used elsewhere in
the code.

Part of the blueprint: icehouse-objects
Part of the blueprint: clean-up-legacy-block-device-mapping
Part of the blueprint: use-new-bdm-format-in-attach

Change-Id: I3eb341efcd6397f1bfbb98a546e10e248a45460e
Add device bus and type to virt attach_volume call

These two can be passed in the API when booting instances, and this
patch adds them to the relevant virt driver calls, so that they can be
passed when attaching volumes.

Part of the blueprint: use-new-bdm-format-in-attach

Change-Id: Ia961cae2b4bb3554f8d360c67144eb135df5528f
Use disk_bus and device_type in attaching volumes

This patch enables users to pass disk_bus and device_type parameters to
attach action api call of the extended-volumes plugin (v3 API only).

It also implements this functionality inside the libvirt driver.

Implements blueprint: use-new-bdm-format-in-attach

Change-Id: I7895974def7057fbaddf2b3715a8b72a76f88f3e
Move compute's _get_instance_volume_block_device_info to BDM objects

This patch makes the compute manager's
_get_instance_volume_block_device_info method use objects internally.
This method is being called in a number of places, which makes this a
convenient place to start introducing BDM objects in compute.

Also moves the tests that needed fixing to mock.

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

Change-Id: Ied2dcb860e2ba375117bab341a56b9fea516cffe
Merge "Objectify instance_action for cell scheduler"