add support for extra devices at launch

the original option only specified ephemeral XXX devices
this allows to specify extra EBS volumes, with or without IOPS, etc - while keeping the same behavior for the old *--ephemeral-devices* option

@igor47 @pcarrier @nelgau @daveaugustine @jtai @martinrhoads @jeffyip 

Usage example in chef:
https://github.com/airbnb/chef/blob/patrick/graphitedi/roles/graphite-di.rb

Usage example in command line:
bundle exec stemcell blablabla *--block-device-mappings '/dev/sdg1=:10:true:io1:250,/dev/sdg2=snap-0bf2ee7b:12'*

Will generate
```ruby
block_device_mappings  [{:device_name=>"/dev/sdg1", :ebs=>{:volume_size=>10, :delete_on_termination=>true, :volume_type=>"io1", :iops=>250}}, {:device_name=>"/dev/sdg2", :ebs=>{:snapshot_id=>"snap-0bf2ee7b", :volume_size=>12}}]
```