Volume operations should be blocked for non-null task state

Currently volume attach, detach, and swap check on vm_state but
not task_state.  This means that, for example, volume attach is
allowed even when other operations such as migration are in
progress.  As with other operations the check should be against
a task state of "None"

This change also refactors the volume_attach() method a little
so that the cells api can include the state decorator checks.

Change-Id: I0c4d697cf9d9e431a050c3c1b03e46b8629d182a
Closes-Bug: #1274627
Merge "Volume operations should be blocked for non-null task state"