New syntax to boot from a block device mapping

Add new arguments and syntax for booting from a block device mapping
that use the new os-block-device-mapping-v2-boot extension. These
allow to:

 * boot from an image, volume  or snapshot (--image, --volume, --snapshot)
 * attach any type of block device (--block-device).
 * attach an swap disk on boot (--swap).
 * attach an ephemeral disk on boot (--ephemeral).

blueprint: improve-block-device-handling

Change-Id: I1aadeafed82b3bd1febcf0d1c3e64b258d6abeda