Optimize libvirt live migration workflow at source

During live migration, after instance migrated to destination, we
call Hypervisor destroy to clean the instance, this can be omitted
because it doesn't exist in source server already. This patch changes
cleanup to a public method to driver, split instance destroy to two
step:

1. destroy instance in the Hypervisor
2. cleanup instance resources(block device, network)

Change-Id: I65e711c03fee7342b1e2bc4f9459baae7729f911
Closes-bug: 1240820
Merge "Optimize libvirt live migration workflow at source"
Merge commit 'refs/changes/53/58753/9' of git://gold.eng.hq.xensource.com/git/github/openstack/nova into tmpbranch
Merge commit 'refs/changes/54/58754/11' of git://gold.eng.hq.xensource.com/git/github/openstack/nova into tmpbranch
Merge commit 'refs/changes/55/58755/10' of git://gold.eng.hq.xensource.com/git/github/openstack/nova into tmpbranch
Merge commit 'refs/changes/61/58861/10' of git://gold.eng.hq.xensource.com/git/github/openstack/nova into tmpbranch
Merge commit 'refs/changes/53/60253/7' of git://gold.eng.hq.xensource.com/git/github/openstack/nova into tmpbranch

Conflicts:
	nova/virt/xenapi/vm_utils.py
Merge commit 'refs/changes/08/60808/6' of git://gold.eng.hq.xensource.com/git/github/openstack/nova into tmpbranch
Merge commit 'refs/changes/78/63778/1' of git://gold.eng.hq.xensource.com/git/github/openstack/nova into tmpbranch
Merge commit 'refs/changes/38/66338/3' of git://gold.eng.hq.xensource.com/git/github/openstack/nova into tmpbranch
Merge commit 'refs/changes/97/66597/3' of git://gold.eng.hq.xensource.com/git/github/openstack/nova into tmpbranch