Fix HOT inconsistencies in resource sections

This patch fixes inconsistencies between keywords in resource
definitions in a HOT template as documented in the HOT specification
and the way they are processed by the code.

So far it was possible to use CFN like syntax or HOT syntax inside
resource definitions (e.g. both 'properties' and 'Properties' were
accepted) since the HOT processing code did tolerant processing.
Consequently, users had been able to produce CFN/HOT mixed templates.

This patch introduces strict enforcement of allowed keywords to
make HOT templates consistent with the spec by providing concrete
validation errors in case of invalid keywords.

This patch also adds a DB migration step to update existing templates
in the Heat database with potentially legacy keywords to comply with
the new strict syntax checking rules.

Change-Id: I44309acda86a930030cb70493f409e3ea4740130
Closes-Bug: #1274288
Closes-Bug: #1271008
Merge "Fix HOT inconsistencies in resource sections"