Add support for multiple NetApp backends

This change adds a new define for cinder::backend::netapp, allowing
users to create multiple NetApp backend definitions within their puppet
manifests for use with Cinder.

Implements: blueprint cinder-multi-backend-netapp
(cherry picked from commit 21640609c11df1b5c0447a98b99295dc631a7600)

Change-Id: I0a94dbefc21d254369bfb4a0b9562bf5348cc70b
[bp] Add support for Cinder multi-backend

* Create class cinder::backend.
   Sets DEFAULT/enabled_backends

* Create define cinder::type.
   multip-purpose function to create type and optionally set extened
   information.

* Create define cinder::type_set.
   multi-purpose set function to set extended information.

* Copy rbd, iscsi, and nfs volume providers to support multi-backend
   Now provided as cinder::backend::<driver> to ensure that multi-backend
   aware resource is|[ not] used.

* Add rspec for new parts to ensure expected function.

Blueprint: cinder-volume-multi-backend

(cherry picked from commit 209a5bd36af085cf306cf084ed1af1bf0fc9f41d)

Conflicts:
	README.md

Change-Id: Ia2a92a067be6e785d7ca92c4029372ecf6e02ba7
Merge "[bp] Add support for Cinder multi-backend" into stable/havana
Add support for VMDK driver

The patch adds support for VMware vmdk cinder driver. It also
supports configuring the driver for multi-backend scenarios.

implements blueprint support-vmdk-driver

(cherry picked from commit 14be6892554ab1c4df6144a0c782bad6b8c9cfec)

Conflicts:
	manifests/volume/vmdk.pp
	spec/classes/cinder_volume_vmdk_spec.rb

Change-Id: Ida0303ac55ab2af5cff9db8fcfcc36d46440c2e2
multi rbd: add opts, deprecate glance_api_version

- Add all cinder rbd params (multi-backends)
- Update documentation/tests
- Deprecate glance_api_version to avoid duplicate definition
  with cinder::glance class.
  (use glance_api_version of cinder::glance class instead.)

(cherry picked from commit dda201af2aa9f4fdca1b46bbeeeea6821ba6b637)

Change-Id: I237ea1ae7a9a1a67272b4ec705d832daef1bc5c7
volume/rbd: Re-enable conditional for string parameters

- According the Michael comments on review¹, the conditional statements
  was re-added (in order to not pass « False » in ini config file).
- Fix spec/defines/* warnings (Space interpreted as grouped expression)

¹https://review.openstack.org/#/c/73892/2/manifests/backend/rbd.pp

(cherry picked from commit 94940882f542c701ab6de27ddd0e51857707fc2b)

Conflicts:
	manifests/volume/rbd.pp

Change-Id: I036ea1bf9dd0c6941d7f02038b39a7f293d68ffe
Merge "Add support for VMDK driver" into stable/havana
Merge "multi rbd: add opts, deprecate glance_api_version" into stable/havana
Merge "volume/rbd: Re-enable conditional for string parameters" into stable/havana