Work around 'ubuntu server returns json as text/plain'
Support waiting until VM is network-accessible.

With the new flag ``downburst create --wait``, we add a final step
into cloud-init user-data, that ejects the ``cidata`` CD-ROM. Outside
the vm, we then poll for the CD-ROM tray position, waiting for it to
be open.

When using a reactive DNS updating mechanism (such as
https://github.com/ceph/propernoun ) that updates DNS after seeing the
VM creation and the DHCP lease, the DNS name won't exist until after
the VM has requested a DHCP lease. This combined with caching DNS
resolvers that enforce a multi-minute lower bound on DNS
negative-cache entries means that if you ask for the IP address of the
new VM too early, you won't see the correct answer for several
minutes. This is frustrating.

With ``--wait``, downburst waits for the cloud-init run to complete.
And we know that the DHCP lease completes before the cloud-init run
starts. This does not completely eliminate the above issue (there's
still a race if the DNS updating is significantly delayed), but in
practice ``--wait`` is enough to make things work.
Add ``downburst destroy NAME``, to remove a vm and storage.

This permanently deletes the data associated with that virtual
machine, without confirmation. Be careful!