Add synchronization in Block Device driver
Multiple calls can get the same device. This patch adds synchronization
to create_volume, delete_volume and create_cloned_volume to avoid race
conditions. The delete_volume method is modified to avoid code duplication
in the implementation of delete_snapshot method for snapshot in the next
patch. Also it adds update provider_location and host to mark device as
used to avoid race with other threads. It uses object notation instead
of dict notation to a volume and snapshot.
Change-Id: I0b8fb28dde367c3f34dd0b6b9d98372cfff65d45
Closes-Bug: #
1335904