Use strings for block device mapping info

Nova client receives colon separated strings for block device mapping info
instead of a list.

Fixes bug #1221693

Change-Id: I321001d406f620d5f8a21e0f28cf706579ad64ad
Validate OS::Nova::Server block_device_mapping property

Make sure either volume_id or snapshot_id exists but not both. Also this patch
ensures that a bootable volume is specified when image is not given.

Fixes bug #1215267

Change-Id: Ia51f6c7aec9c0b257318992ee58febc392ea3d84
Merge "Use strings for block device mapping info"
Merge "Validate OS::Nova::Server block_device_mapping property"