Add volume option to boot server from volume and run script

nova and cinder may set to different disk backend, e.g. nova use
local disk for image, and cinder use rbd volume_driver. This patch
will add flexibility for user to choose where the vm is booted
from.

Based on boot_runcommand_delete scenario, add new option for volume:
volume_args, which is default to "None". It is a dict option and
'size' parameter is supported now. If volume_args is assigned, this
scenario will create a volume_args['size'] size volume, and boot
from the new volume, finally run "script".

Here is a sample scenario:

    "VMTasks.boot_runcommand_delete": [
        {
            "args": {
                "flavor": {
                    "name": "m1.tiny"
                },
                "image": {
                    "name": "cirros"
                },
                "volume_args": {
                    "size": 2
                },
                "script": "./instance_dd_test.sh",
                ...

Change-Id: I6993c046bcf5a8632b08d46ae380067ffa677f84
Merge "Add volume option to boot server from volume and run script"