Adding support for multiple EBS block device mappings for boot from EBS register image and run instance requests

Implements:
EUCA-4786 Fully support EBS-based EC2 block device mappings in run-instance and register-instance
EUCA-4787 Correct message parsing and unmarshalling for multiple block-device-mappings
EUCA-4788 Add CLC logic to correctly create multiple EBS volumes as specified by block-device-mapping
EUCA-4789 Correct message path from CLC to NC for device mappings
EUCA-4790 Ensure correct NC  and vmware broker behavior when mapping the block-devices to the instance
EUCA-4833 Fix the image metadata service to reflect the device mappings communicated to NC
EUCA-4938 Ensure bfebs image semantics in eucalyptus are on par with ec2

Fixes:
EUCA-4244 Should support images with multiple device mappings
EUCA-4047 clc allows bfebs volume size less than the snapshot
EUCA-3254 RunInstances api call needs to support multiple block device mappings
EUCA-4081 metadata service incorrect for BFEBS instance
EUCA-3954 Metadata service doesn't show correct block device mapping for BFEBS instance when block device mapping is set with euca-register
EUCA-4932 Failed to launch instance after deleting snapshot associated with an image as non-root ebs mapping
EUCA-3461 BFEBS instance has a redundant device /dev/vdb