VMware: create datastore utility functions

The patch moves datastore interfaces from vmops and vm_util
to a separate file - ds_util.

This is part of the blueprint vmware-image-cache-management.

In the past the datastore methods would poll the task
to determine that it had completed. This has beem addressed by
making the driver _poll_task return the task information.

The patch set also solves the following bugs by checking if
the FileAlreadyExistsException exception is raised. This could
be due to another process or thread creating the file.

Closes-bug: 1230047
Closes-bug: 1254128

Change-Id: I788e33dbcb3dedc41831b976137607274b1c02ca
Fix development environment docs for redhat-based systems

This adds the new libffi-devel dependency to the devref for new
development environment creation.

Change-Id: I63e0302cffe33b05722579e7d9c7122f2f257843
Move instance delete to new-world BDM objects

Move all the code paths related to instance deletion to new-world
objects. This includes soft- and hard- deletes, instance init on compute
startup, as well as the reclaim_queued_deletes and
_cleanup_running_deleted_instances  periodic tasks.

It introduces an additional database call in the _shutdown_instance
method as there are still paths that call this method but will not pass
it BDM objects. This will be removed as soon as _reschedule_on_error
(basically meaning instance spawn) code paths are moved to BDM objects.

Part of blueprint: icehouse-objects
Part of blueprint: clean-up-legacy-block-device-mapping

Change-Id: Ic63a3afb77362f0797c546a9505fa4bd7a9b986e
Move detach_volume and remove_vol_connection to BDM objects

This patch moves detach volume code paths to use BDM objects. Since both
detach_volume and remove_volume_connection compute manager methods,
since both of them use the _detach_volume method that needed to be
converted as well.

Part of blueprint: icehouse-objects
Part of blueprint: clean-up-legacy-block-device-mapping

Change-Id: I1e9af9be0ea318f568180ddbd6cd0a25e8bb0bfd
Merge "Fix development environment docs for redhat-based systems"
Merge "VMware: create datastore utility functions"