add all ephemeral drives when launching instances

Generalized create_root_block_device_map to create_block_device_map with
new kwarg root_snapshot_id and num_ephemeral_drives.

The num_ephemeral_drives kwarg is 24 by default which covers all
instance types. Any types that have less than 24 ephemeral drives
available will simply ignore the rest in the block device map.

Updated request_instances() to always add *all* ephemeral drives if
block_device_map is not specified.

closes gh-202