unconfigured clients look in the [clients] section for defaults

This change enables clients that have no specific settings in
the [clients_xxx] sections of the configuration file to get defaults
from the [clients] section.

Change-Id: I071bd77a2e1f0ad366b80c095917a8debc5cef2b
Closes-Bug: 1379958
Make resource check messages more consistent

This adds a method to be used in handle_check calls to make error
messages more consistent, as well as making sure that all unexpected
messages get displayed in the status_reason field, as opposed to
stopping on the first error.

Change-Id: Id855886ae42eabd78dafc6514eca9eebf905f291
Implements: blueprint stack-check
Correct error message when query domain id

As discussion in comments of https://review.openstack.org/132955 ,
correct error message when query domain id.

Partial-Bug: #1376213
Change-Id: Id39ee6d4acca82c908b690c748609ed1125012eb
Fix incorrect ca argument for heat ceilometer client

Currently Heat ceilometer client are passing the wrong ca argument
during client instantiation. It will cause heat fail to connect to ceilometer
if it's configured with SSL.

https://github.com/openstack/python-ceilometerclient/blob/master/ceilometerclient/v2/client.py#L53

Closes-bug: #1391792

Change-Id: Ib32dfede0ece78bc39e0cab213cb51df8eb62eb6
Fix [H302] errors in heat/api

Change-Id: I1eee89a1ff1b011031cde89c5daa660735bf1eb1
ResourceGroup don't special-case zero count

Currently, when you specify an initial count of zero, we don't
create the nested stack.  Unfortunately this then means you can
never update it, which makes the group forever broken..

Instead, always create the stack on create, even if it's an empty
stack containing zero resources.  This allows subsequent updates
which move to a non-zero count to work as expected.

Change-Id: I494229fcf85a1c28428fa2925c060fc1f40f4f36
Closes-Bug: #1392796
RandomString physical_resource_id as id not the string

If someone choses a string length of over 255 we overflow the DB
id field causing an error, so instead use the physical name 
for the resource_id.

The actual string is already stored (encrypted) in the resource_data
so it's probably better anyway to refer to the value in one place
and just override FnGetRefId to maintain the existing interface behavior.

Change-Id: Ide8899a2aa0a9fed037835dc46225f52c291ace6
Closes-Bug: #1392359
Alter models and add migration

We must have correct models i.e. models that correspond
database schema to use sqlalchemy features.
Update models.py and add migration script to correct
database schema and get rid of the difference between
schema and models.
Remove Stack.user_creds_id nullable=False parameter
because  we can soft-delete stack, that leads to deletion
user_credits and setting stack.user_creds_id to null
(by cascade).
Remove resource.id default value(in database) as specified
in models.
Since we will have sync check between models and migrations
we need to add missing indexes to models for consistency.

Partially implements bp: db-sync-models-with-migrations

Change-Id: Iabc4aced0a95e29cea9c48abc4c31be98e8ff9b1
Import sqlalchemy module instead of classes

As required by H302, import the module.
Addressing comment in https://review.openstack.org/#/c/127535/

Change-Id: If7ef3a9e403ee4fa59dc9caf020751debde2d065
Merge "Fix incorrect ca argument for heat ceilometer client"
Merge "Fix [H302] errors in heat/api"
Merge "Alter models and add migration"
Merge "unconfigured clients look in the [clients] section for defaults"
Merge "Make resource check messages more consistent"
Merge "Import sqlalchemy module instead of classes"
Merge "RandomString physical_resource_id as id not the string"
Merge "Correct error message when query domain id"
Merge "ResourceGroup don't special-case zero count"