Implement ability to Clone volumes in Cinder.

This implements the capability to create usable volume clones in Cinder,
for the LVM case we create a temporary snapshot to copy from so that
volumes can remain attached during cloning.  This works by passing
in a source-volume-id to the create command (similar to create-from-snapshot).

Currently we limit clone to the same Cinder node, and only for the base LVM driver.
All other drivers should raise NotImplemented, most inherit from the SANISCSIDriver,
so move the function there and raise until we have a general implementation
for SANISCSI based drivers.

Those drivers that inherit from ISCSI directly instead of SANISCSI,
add the function explicitly and raise NotImplementedError there as well.

Implements blueprint add-cloning-support-to-cinder

Change-Id: I72bf90baf22bec2d4806d00e2b827a594ed213f4
Merge "Implement ability to Clone volumes in Cinder."