Implement cinder client plugin

This moves the client creation code out of Clients._cinder() into
its own client plugin.

Cinder is a core project, and python-cinderclient is a dependency,
so the import is now mandatory (including the volume_backups import).

Change-Id: I6b937422cd8e20fa620a7e875ae8b4c61e8f9cf8
Fix error count for stack-list while show deleted

1.The count for stack-list is incorrect while show deleted.
  The count should include the deleted ones.
2.We should check the value of 'with_count', if the value
  is invalid, we should raise ValueError.

Change-Id: Ie1eef7a7ec63870ac28929bcadcd917bbc8d3203
Closes-bug: #1331383
Fix OS::Trove::Instance restore_point property

python-troveclient expects restorePoint to be a dictionary with a
"backupRef" key.

Change-Id: Ib4d83e82dcd5c012fdc12255a93682a6c2d9f47c
Closes-Bug: #1338626
Convert WaitConditionHandle to use handle_signal

The metadata_update interface does pretty much the exact same thing
as handle_signal, with the disadvantage that it's not exposed via
the native ReST API, so convert WaitConditionHandle to use
handle_signal.

This has the following advantages:
- Provides a step towards native waitcondition resources
- Enables signalling existing waitcondition resources via
  heat resource-signal (e.g the native API)
- Moves towards a standardized model where handle_signal is the
  only supported plugin interface for asynchronous signalling of
  resources.

To avoid breaking any CD folks who may not update heat-engine and
heat-api-cfn at the same time, the existing resource interface is
maintained with a deprecation warning (how long to maintain this
is TBC).

Change-Id: Id7dde1c5f13683950a1cb483ae2ce4d1fbf2a56e
blueprint: native-waitcondition
Refactor waitcondition resources to allow easier subclassing

Rework the WaitCondition resources to define some class variables
which will make inheriting from them to implement native resources
easier.

Change-Id: Icf58185cb172b455c927dfe79763f9bb1c5ffed0
blueprint: native-waitcondition
Add an OS::Heat::WaitCondition resource

Refactor so the existing CFN compatible resource and a new native
resource can share the same base implementation.  It's mostly
cosmetic changes to the interfaces, but note the handle reference
is not expected to be a signed URL for the native resource as
native (non ec2token) auth will be used for the native handle.

Note partial test coverage of the new resource is provided via the
existing tests due to the inheritance, but full coverage will be
added via the patch which implements the matching native handle.

Change-Id: I2bc6cb8313bf576188d5d740dac00ce54cb38f3e
blueprint: native-waitcondition
Add missing DeprecationWarning category to warning

This is a deprecation warning but it lacks the category specifier
for DeprecationWarning.

Change-Id: I4f31c2cd64b94564ff53d944cae36bff472491d4
Merge "Convert WaitConditionHandle to use handle_signal"
Merge "Refactor waitcondition resources to allow easier subclassing"
Merge "Add an OS::Heat::WaitCondition resource"
Merge "Implement cinder client plugin"
Merge "Fix OS::Trove::Instance restore_point property"
Merge "Fix error count for stack-list while show deleted"
Merge "Add missing DeprecationWarning category to warning"