Fixes template not using the JSON or YAML format

An internal unexpected exception is raised while validating a template
which only has string content. We should handle the case and raise the
correct error message such as "invalid format" and to tell the template is
not using the JSON or YAML format.

And modify incorrect version name and version date in this patch.
And change "template" from global variale to class varialbe in
test_api_cfn_v1.py. (missed in another patch which this patch
depends on: Change Idc2ba2b9 by misoperation)

Change-Id: I46ee8c48e3ddae71be061cfda0c029d86d132684
Closes-Bug: #1267379
Move param format for template-validate to API

This patch is second in a series of patches to unify the code for
property and parameter validation based on a common Schema class.

The current patch moves the formating of parameters during the
template-validate API into a new function in the API layer.
Previously, only a dictionary of internal parameter schema
objects was returned, which meant a close coupling between
the engine's internal data structures and the API expected
format.
With the new format function in the API, we are able to better
separate internal data from API formats and can maintain API
compatibility when refactoring inside the engine.
In a subsequent patch, we can thus move to a consolidated code
base for parameter schema validation (based on the common Schema
class) and don't have to distinguish between CFN and HOT inside
the engine.

Change-Id: I302e58906a0b530d967cbae808d0cf6b2fdcb3bc
Partial-Bug: #1230229
Implements: blueprint schema-code-consolidation
Add autoscaling notifications

Send 2 notifications when an auto-scaling event occurs :
- successful resizing : 'autoscaling.start' and 'autoscaling.end'
- failed resizing : 'autoscaling.start' and 'autoscaling.error'

Implements blueprint send-notification-autoscaling

In same time, split out all notification code in its own module :
- stack CRUD : heat/engine/notification/stack.py
- autoscaling events : heat/engine/notification/autoscaling.py

Co-Authored-By: Angus Salkeld <angus@salkeld.id.au>
(from https://review.openstack.org/#/c/54661/)

Change-Id: I23e4478faf58ef23b031a3b0d4087c892dc4e96f
stub cfg.CONF in heat_keystoneclient

It seems that sometimes tests can fail when reading the config
and the suspected cause is a race caused by running the tests in
parallel when using the global set_override on oslo.config.

Stubbing all calls to the config should solve this issue (although
it is a bit cumbersome in the test..)

Change-Id: Ib1ee97f116544e069123253002d4a408503ac82e
Closes-Bug: #1273126
Merge "Move param format for template-validate to API"
Merge "stub cfg.CONF in heat_keystoneclient"
Merge "Fixes template not using the JSON or YAML format"
Merge "Add autoscaling notifications"