New update_snapshot_status API

Adds new snapshot_actions module

Update_snapshot_status: Allows updating of 'state' and
'progress' fields of a snapshot.  This is used by Nova
to inform Cinder of its outcome when performing snapshot
operations for attached volumes.  Updates are restricted
to a subset of possible start and finish states.

Implements blueprint qemu-assisted-snapshots

Change-Id: I54772f794b97e1cc6b24b121b757219248e37109
QEMU-assisted-snapshots for GlusterFS volumes

Coordinate with Nova to create and delete snaphots for
GlusterFS volumes that are attached to VMs.

Cinder is responsible for creating a QCOW2 file which Nova
will activate in the VM's snapshot chain when a snapshot is
created.

When a snapshot is deleted, Cinder will request for Nova to
perform a block commit/rebase operation to logically delete
the snapshot from the QCOW2 chain.

Implements blueprint qemu-assisted-snapshots

Change-Id: I4a7f0c1bc08d88b0f75d119168dd2077487a62a0