xenapi: make _migrate_disk_resizing_up use @step

Make use of the step decorator into _migrate_disk_resizing_up to make it
more consistent with _migrate_disk_resizing_up.

Also add some extra unit tests to help lock down this process with unit
tests.

Change-Id: I395b8e27380649c667bb8d891802532ee3ab746b
xenapi: revert on _migrate_disk_resizing_up error

_migrate_disk_resizing_up now follows similar pattern to
_migrate_disk_resizing_down, and rolls back if there is an error.

Change-Id: I2557357a4f3502f991a5d187c2ecf7ffeb22286e
xenapi: simplify _migrate_disk_resizing_up

Previously it called get_vdi_for_vm_safely but it already had all the
information it needed from snapshot_attached_here.

Change-Id: I4e0dd1a875ee7e194d38016ff49296a360627aea
xenapi: migrate multiple ephemeral disks

Current migrate does not move ephemeral disks. This change allows those
disks to be moved. Note there could be several ephemeral disks in the
case where there are ephemeral disks that would be too big for a single
VHD file, or split up to improve performance.

This change disables the ability to resize ephemeral disks. A later
patch will look at enabling resize-up for ephemeral disks. Currently,
during resize, the ephemeral disks are just dropped and re-recreated.

Change-Id: I8d7d84b54d2a876a510c442bb11a1c64c35feb00