Re-raise the original exception when creating a new Template

To avoid problems with full disks, all the objectstore operations are
made in a try/except block - so in any problem we can properly inform
the user. But an exception is also expected for duplicated entries.
In that case we should raise the original exception.
Fix it.

Signed-off-by: Aline Manera <alinefm@linux.vnet.ibm.com>
Use objectify to Remove metadata namespace

When libvirt does not support virDomain.metadata() we need to do string
manupulation to remove the Kimchi namespace. It was done using regex
which was causing problems to remove undesirable content.

Signed-off-by: Aline Manera <alinefm@linux.vnet.ibm.com>
Check currentMemory exists prior to remote its XML node

When updating the guest memory, the currentMemory node must be removed
to reflect the new value.
But if the guest was never started it does not have a currentMemory
node. So check it is exists prior to remove it.

Signed-off-by: Aline Manera <alinefm@linux.vnet.ibm.com>
Ensure the guest volume exists to remove it

In some cases, the guest volume may not be in a pool and
virStorageVol.storagePoolLookupByVolume() will raise an exception which
will point the user to a false negative guest deletion - as an error is
shown to him but the guest was really deleted.
So prevent it by using a try/except block around
virStorageVol.storagePoolLookupByVolume()

Signed-off-by: Aline Manera <alinefm@linux.vnet.ibm.com>
Pass libvirt connection as CapabilitiesModel parameter

CapabilitiesModel depends on libvirt connection to properly run the
FeatureTests against the right connection.

Signed-off-by: Aline Manera <alinefm@linux.vnet.ibm.com>