Add Brick iSCSI attach/detach.

This patch adds the new brick initiator connector object
which contains the code to do volume attach and detach to a host
machine.  It includes hooks to work in both cinder and nova.
Nova has different exec wrapper and it also needs to talk to a
hypervisor at certain points during detach.

This patch also pulls the copy/pasted code from nova in the base
ISCSIDriver's _attach_volume method to use this new brick library.

This patch also includes a fix in the ISCSIDriver's
copy_volume_to_image code that didn't actually detach a volume
when it was done with the operation.
Bug 1194962

This patch also includes a fix for iSCSI detaches where the
iSCSI LUN wasn't being removed from the system until the very
last detach issues an iscsiadm logout.
Bug 1112483

This patch includes a fix for iSCSI multipath detaches where
the multipath device and the iSCSI LUNs for the multipath device
were never removed from the kernel.
Bug 1112483

Blueprint cinder-refactor-attach

Change-Id: Ieb181f896adb9230bbb6a2e5c42f261d61a0f140
Merge "Add Brick iSCSI attach/detach."