make datastore_version_id required

The datastore addition didn't migrate existing instances,
which causes existing installations to blow up after upgrading.
This commit addresses that by inserting best-guess dummy data
into the db.  Operators will need to clean up the values to match
their actual usage.

Change-Id: I7ae064cea9b654a4501b91877b779fb4073623af
Closes-Bug: #1259642
Adds exception handling to heat code

Reasons:
- In absence of exception handling code, instance status used to be
  always in BUILD state, even if heat code has error'd out.
- status "CREATE_FAILED" of heat stack should also be candidate
  of code failure and instead of executing next code,
  exception should be raised for this status.
- Resource state should also be verified before keeping their IDs.

Changes:
- Exception handling code added, which would set instance status
  to ERROR for any failures.
- Added HEAT_STACK_SUCCESSFUL_STATUSES & HEAT_RESOURCE_SUCCESSFUL_STATES
- Heat Stack status is verified with HEAT_STACK_SUCCESSFUL_STATUSES,
  and raises exception on failure.
- Heat Resource state is verified with HEAT_RESOURCE_SUCCESSFUL_STATES,
  and raises exception on failure.

Change-Id: I307d3d6bbdcd9a46b6ea94e9673ee8d1d97e50bd
Closes-Bug: #1263496
Changes encoding from 'ascii' to 'utf-8'

Reasons:
- Heat code, while encoding the template encodes it with 'ascii'
  encoding, which should be 'utf-8' instead.

Changes:
- Encoding format changed from 'ascii' to 'utf-8'.

Closes-Bug: #1272053
Change-Id: I66a7c20716899144653b7dbc6811c268caaf7c2c
Merge "make datastore_version_id required"