Allow undef in block device mappings so we can list both EBS and ephemer...

...al mappings

This pull request enables block device mappings like this as arguments to ->run_instances(), which maps both a 20GB gp2 EBS volume as /dev/sda1 and ephemeral0 as /dev/sdb:

        'BlockDeviceMapping.DeviceName'     => [ '/dev/sda1', '/dev/sdb' ],
        'BlockDeviceMapping.VirtualName'    => [ undef,       'ephemeral0' ],
        'BlockDeviceMapping.Ebs.VolumeSize' => [ 20,          undef ],
        'BlockDeviceMapping.Ebs.VolumeType' => [ 'gp2',       undef ],

This is needed for m3.2xlarge (at least) instances, which ignore ephemeral mappings listed in AMIs.  Thanks!