Refactor the backup method of SwiftBackupService

Export functionalities of backup to 3 new methods:
prepare_backup backup_chunk and finalize_backup. The original
backup function calls those functions. This allows other
drivers to combine them in a different logic.
e.g for the RBDDriver

Change-Id: I4f335bfcd03cd1da52a9e5c5c689d97581614af6
NetApp:iSCSI drivers reserved percent need to change to 0.

The iscsi drivers reserved percent is 100 as of now. This needs
to be changed to 0 for default values. It needs to be corrected
so that filter scheduler does not discard netapp backend.

bug 1182015

Change-Id: Id80584e5d478c83de97735706994206e024f8bf6
Use list comprehensions when possible

Replace some for loops with list comprehensions for compacting

Change-Id: Ia80a013735c595d7c4d40172b34beb18b4383ee0
Adds create_from_volume test cases

  For tests.test_volumes,
  added 3 test cases:
     create_from_volume
     create_from_volume_with_glance_metadata
     create_from_volume_failed_on_cloning
  refactored an internal api:
     _create_volume_from_image

  The reason not to test a non-exist volume as source_vol is
  the uplayer(volume api) has already checked and ensured the
  source_vol exists

Change-Id: I9c345bc29cae31f1a22236a4849f13d7289ea49e
Merge "Use list comprehensions when possible"
Merge "NetApp:iSCSI drivers reserved percent need to change to 0."
Merge "Adds create_from_volume test cases"
Added Cinder volume backup to Ceph support

Added new Ceph backup service to allow backup
of Cinder volumes to a Ceph object store. This
driver is compatible with the existing backup
interface provided by the Swift backup service.

Also added backup and restore to RBD driver.

Change-Id: Id0931e308fd3c15ec3901e8e666c19decec09b41
Implements: blueprint cinder-backup-to-ceph