Properly attach a volume to an instance.

Previously we would attach the volume to the instance via nova
and then update cinder's metadata about the attachment. This lead
to a race because nova  updates this metadata, but fails because it
already occured (by us). This causes an accounting problem within
nova, and it marks the device as no longer attached.

Essentially we were abusing the API and causes some data corruption
within the nova db.

Change-Id: Ifc41383e2942351d16f0c70716385c9db659cb38