Added the ability to add volumes to instances at creation time

This allows a volume to be cloned from a snapshot, an existing
volume to be attached, a brand new volume to be created, or
an ephemeral volumes to be associated at time of instance creation.

This avoids any race conditions associated with creating extra volumes
after instance creation (e.g. writes happening before the volume is
mounted).

In addition, this allows the root volume to be edited