Create volume from snapshot must be in the same AZ as snapshot

This issue and patch also apply to cloning volumes.

When creating a volume from a snapshot we need to pick the
availability zone of the snapshot's source volume. This patch
goes further and enforces that the new volume must be in the same
AZ as the snapshot. It raises an user error if the user tries
to create a volume in a different AZ to the snapshot.

This is enforced across all drivers because creating a volume from
a snapshot is implemented in the drivers and not all drivers are
guaranteed to support creating a volume from snapshot is a foreign
AZ. More to point if you don't support create a volume like this,
and we allow this then you can create volumes and instances that
get stuck in some weird states that require a support call to fix.

If you do support cross AZ functionality then you can override
the enforcement of that cloned volumes most be in the same AZ
as their source via the 'cloned_volume_same_az' option.

Change-Id: Iafc8f35ecc6a6b51dbe6df8bf44eaa3e79c3bd01
Fixes: bug #1202648
Merge "Create volume from snapshot must be in the same AZ as snapshot"