EMC VNX Direct Driver Update for Juno

VNX Direct Driver has been contributed to Icehouse release.
This patch refactors driver and adds the following new features

* Array-based Backend Support
* FC Basic Support
* Target Port Selection for MPIO
* Initiator Auto Registration
* Storage Group Auto Deletion
* Multiple Authentication Type Support
* Storage-Assisted Volume Migration
* SP Toggle for HA
* Security File Support
* Advance LUN Features
    # Compression Support
    # Deduplication Support
    # FAST VP Support
    # FAST Cache Support
* Storage-assisted Retype
* External Volume Management
* Read-only Volume
* FC Auto Zoning

Certificate Test Results
    https://bugs.launchpad.net/cinder/+bug/1336640

CCLA SCHEDULE B SUBMISSION

Change-Id: Ib7edaefa5eceb8e8c01ec0ce0dcdada7eaa9dd08
Implements: blueprint emc-vnx-direct-driver-juno-update
Change the exception type for Storwize/SVC driver

When create a volume from snapshot or clone a volume,
Storwize/SVC require the same size for the source volume
and target, if not, will raise VolumeDriverException.

For this case, InvalidInput is more appropriate.

Change-Id: I4383c2eb8758077b3029b862dd8b6f982e1850a7
Add retry_on_deadlock to db update methods

There's some known races that have been addressed in
Nova via a retry_on_deadlock deocrator.  Some known
cases in Cinder exist as well when dealing with updates
to quotas and reservations_expire.

This patch introduces the decorator to Cinder and hits
the methods known to be susceptible to deadlock as well
as some others that seem as though they'd fall into the
same category.

Leverages work that's already been done in Nova

Co-Authored-By: Vish Ishaya <vishvananda@gmail.com>

Change-Id: Ic807f4f8a333e4d5477f86e41eea40191637087c
Partial-bug: #1350466
Use auth_token from keystonemiddleware

auth_token middleware in python-keystoneclient is deprecated and has
been moved to the keystonemiddleware repo.

Closes-Bug: #1342274
Change-Id: I1aadbe24db63eb2507b088cd53886d7f2e192cab
Merge "Add retry_on_deadlock to db update methods"
Merge "Use auth_token from keystonemiddleware"
Merge "Change the exception type for Storwize/SVC driver"
Merge "EMC VNX Direct Driver Update for Juno"