Handle 'detaching' state of Volume

When detaching volume, the state of volume changed from 'in-use'
to 'detaching', and then from 'detaching' to 'available'.
The code used to ignore 'detaching' state by assuming the volume
has been detached when its state is not 'in-use' any more.
Now we take care 'detaching' state and raise error if detaching
failed.

Fixes bug #1197747

Change-Id: I555eea19409142ccb306c0cceaf7c55e71385bc6
Merge "Handle 'detaching' state of Volume"