Fixes snapshotting of instances booted from volume

When an instance was booted from a volume, the block device mapping
entry has volume_id set. If it was booted from a snapshot it has
volume_id and snapshot_id set. When we snapshot the instance, it
should be snapshotting the volume in both cases.

This patch fixes the faulty logic that was causing snapshotting to
only happen in the case the instance was booted from a snapshot.

It also includes a (formerly failing) test to verify that the volume
commands are actually called and the new snapshot is set properly.

Fixes bug 1055076

Change-Id: Icdd2ab7f3e2d43a0564aea132fe707a592fe4e75
Allow deletion of instance with failed vol cleanup

If something goes wrong when trying to delete volumes that have
been marked delete_on_terminate, we leave an instance record in
the database that can't be removed even though the instance is
gone.

Intelligent recovery at this point is very difficult, so for now
just log a warning and let the instance be deleted. It is unfortunate
that there isn't a good way to let the user know that his volume
was not deleted, but this seems preferable to leaving an undeletable
instance.

A test is included to verify the behavior, as well as a note so that
a better fix can be included later.

Fixes bug 1055095

Change-Id: I26e801fc3e9c56cf84d2b977295fcf580428879a
Merge "Fixes snapshotting of instances booted from volume"
Merge "Allow deletion of instance with failed vol cleanup"
Integration tests virtual interfaces API extension

Adds tests and templates for testing of the virtual interfaces
API extension. Tests both json and XML API functionality.

Change-Id: I95f4e6667c3c2df123246d73498f13d826e3866a