Patch 033 migration to work w/ MySQL 5.6

With MySQL 5.6 setup to use UTF-8 for everything, the 033 migration
will fail. This is because a VARCHAR(256) cannot be indexed in UTF-8
databases. In versions of MySQL before 5.6, this produced a warning and
a truncated, less-useful index. In 5.6 it was changed to an error.

We will reduce these columns further to 64 bytes in the model in a
subsequent fix. For now, we will just create the table with 64 character
columns on new systems, which will allow this migration to work properly
on mysql-5.6. There is no danger of overflow, as 64 chars is what Keystone
uses for them anyway.

Change-Id: I27b9c61828301ba8c392b3d316f656641af753bc
Closes-Bug: #1316646
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
Merge "Patch 033 migration to work w/ MySQL 5.6"
Merge "Convert WaitConditionHandle to use handle_signal"
Merge "Refactor waitcondition resources to allow easier subclassing"
Merge "Add an OS::Heat::WaitCondition resource"