Integrate os-refresh-config with heat-cfntools

* Provide entry point for Heat Metadata to drive os-refresh-config
* Use os-config-applier for configuring heat cfn tools

Change-Id: Ie38b932173948f1e7c414c48caa1b037916bef84
Make 99-install-config-templates executable:

This script is not run by dib unless it is executable.

Change-Id: Ic7658cd229dba5635a4ea445f0c62d9f22198729
Seperate install of services and start scripts:

This allows openstack services to be git/pip installed
without installing any startup scripts.

This is useful for keystone-db or nova-db elements, for
example, where the service must be installed to perform
database migration, but no service start scripts need
be installed.

Additionally, add a tool to create openstack sql databases.

Use openstack pypi mirror:

Use the openstack pypi mirror for openstack service
installation. It's much faster than pypi.org.

Also, pip install $svc_repo/tools/pip-requires first,
if it exists, which is required to pick up oslo.config.

Change-Id: I72751d4da59f8597d20aea2f27a9dfabe2f63a8f
Install os-refresh-config scripts automatically

Updating the cinder element to reflect the new desired way to ship
os-refresh-config scripts.

Change-Id: Ibde1275725241204f6097ad7cc0ba0de5e6cd431
Update keystone element to use os-refresh-config.

Change-Id: I15595d80ee7fad04d964aaa83a403d9303f6aa55
Fix issues causing Fedora images to fail

For os-refresh-config and os-config-applier, support systemd or upstart.

Change-Id: I4ff12e891a85b3171a6ef0c6898b2d45a1699de1
local-config: Configure proxy for apt and/or yum

Fixes fail to build image on Fedora

Change-Id: I30324081702ffc68e82499d81a841c8ae17119ce
Update keystone middleware in cinder api-paste:

cinder-api in trunk will no longer start with
keystone.middleware, only with keystoneclient.middleware.

The issue is discussed here:
  https://bugs.launchpad.net/nova/+bug/1143998

Change-Id: I29f81ca2503957b4df58e86b2392ef4b3c15d6fe
Fix script that installs os-refresh-config scripts

Was missing executable bits

Change-Id: Idcb984e44f4b45d78c59a45eb0d8d43457c788c9
Correctly translate all branches/tags/shas:

The code which raises an error if two elements try
to install different versions of the same git repo
currently works correctly for SHAs, or if a branch
is specified first, followed by a SHA.

However it fails if two branches are specified, because
the shallow clone does not fetch all branch heads.

This change correctly handles any combination of
SHAs/branch-heads/tags.

Change-Id: I501e94150ddeb41b79588816576a5d7a06fa92aa
Add a bootstrap element.

Change-Id: Ic300e39a56f401be4d88feb6cdf85c851982282c
Add a horizon element.

Change-Id: Ie585a7ea63ba5b5b8b064df738e9616827e913fa
TO PROPOSE: Touch a first-boot.status file:

After running first-boots scripts, both to indicate
that the scripts have completed, and also to record
the exit status.

This is useful for automated testing:
  - tests can wait until first-boot scripts have
    completed before commencing testing
  - tests can abort further testing if first-boot
    scripts have failed.

Change-Id: Idec63de858c15def8c621056232aad45eab225e8
DO NOT MERGE: tim element

Change-Id: I2d8927a391306b21cac0a913153dbd3fc3c4ace4
DO NOT MERGE: bin/boot-elements

Change-Id: I0d4e61d0f00a8635ad27c37eb96d226269f27ab3
remove use-config-templates from cinder-config:

use-config-templates has been deprecated, and must
not be used by the cinder element.

This change relies on os-refresh-config instead.

Change-Id: Ie8594fa99d05032fa0e7a425a9dd278910b80cab