Fixes #123 "Either snapshot ID or volume size must be provided".

Distinguish between VirtualName, NoDevice, and EBS device mappings when encoding BlockDeviceParams.