Check instance on dest once during block migration

During live block migrations both pre_live_migration and
pre_block_migration check for the presence of the instance on
the destination and create the instance dir if it doesn't exist.

As a result the call to pre_block_migration always fails as
pre_live_migration has already created the instance dir on the
destination.

As it turns out the pre_block_migration call is completely
unnecessary. The libvirt driver is the only driver that uses the
call and the work it does can easily be done in the existing
pre_live_migration call. In order to streamline things we
completely remove the pre_block_migration call from all
drivers. Additionally we update the function definition for
pre_live_migration to pass needed disk info down to the
virt drivers.

Fixes bug: #1193359

(cherry picked from commit 659ec75eaf052742a6269e0aae258f1c874749f7)

Conflicts:
	nova/compute/manager.py
	nova/tests/test_libvirt.py
	nova/virt/libvirt/driver.py
	nova/virt/xenapi/driver.py

Change-Id: Id9dfe482db3471d6a1b9b6c7d59a5ddc48775d7f
Add boto special casing for param changes in 2.13

boto 2.13 has some interface changes with the get_http_connection
call which adds port as a non optional parameter *in the middle of*
existing non optional parameters. It's a special kind of incompatible
change.

We are already special casing around boto in the unit tests, lets
just do more of that if we are running on a newer version.

(cherry picked from commit 1ce493b9e4e0c381146287161ab2a3c75f1fc603)

Change-Id: I62f5d4ef5cfa5577015a521a5d161086546a4125
Co-Authored-By: Sean Dague <sdague@linux.vnet.ibm.com>
Co-Authored-By: Dan Smith <dansmith@redhat.com>
Merge "Check instance on dest once during block migration" into stable/grizzly
Merge remote-tracking branch 'upstream/stable/grizzly' into stable/grizzly