Add region support to cinder

This patch adds a new parameter to the api
class that allows cinder to authenticate
against a user specified region.

Used during, for example, boot-from-volume
with cinder endpoints in multiple regions.

Change-Id: If2c857d18223ca0ddaec7979e4df29c2858738b0
Introduce amqp_durable_queue parameter for cinder:init

rabbit_durable_queue parameter used to exist in cinder::base, which
got deprecated long time ago by cinder::init.

When moving from cinder::base to cinder::init parameter rabbit_durable_queue
need to replaced with amqp_durable_queue

Change-Id: Ibb0e4991c141cf10cf6d3ebe86648e19e01fc2ac
multi backends: factorize code between single and multi backends

Code is duplicated between single volume backend
(cinder::volume::*) and multi backends (cinder::backend::*).
This commits updates the single volume backends to make use
of the respective multiple backends classes.

Change-Id: I26a796fb6131fa469f007af54cb96b3605c0f74d
Merge "Add region support to cinder"
Merge "multi backends: factorize code between single and multi backends"