libvirt: Fix start uuid change

When calling vm_rename() the UUID will change, making the vm xml don't
consist with original one.

The patch use new_from_inactive_dumpxml and sync to backup and recover
test vm.

For testing empty or invalid vm name, we need another variable to store
the valid vm name for recovering.

This patch also fix a bug of VMXML.sync(). when the vm is no longer
exist, sync will raise an exception in the backup step. This is not a
right behavior because sync should recover vm even if it's undefined.

Signed-off-by: Hao Liu <hliu@redhat.com>