Bad code landed, causing ubuntu to be always landed.

Change-Id: Ia77073563fde70140169dbbc5a7448aad54295e2
Consolidate common OS installation into a script:

Move common openstack service installation operations
into a new script `os-svc-install`, which simplifies
the elements for openstack services.

Change-Id: Ied8ac3278e7fe8af76e24748ec4e598a84afa03c
Give stack user passwordless sudo:

This is very helpful when performing automation.

Additionally, removed addition of stack user to admin group,
since that group does not exist on all systems, and
passwordless sudo eliminates the need it was addressing.

Change-Id: I727bd51acb920c6c2e66247069998b6ee4267895
Change run-parts usage to be compatible with Fedora.

Change-Id: I7a4e1252b0ced940cd4d8fa2fbd096c016933954
Move the dpkg specific stuff to a dpkg element rather than being hardcoded.

This includes the install-packages implementation for dpkg, apt http proxy
config, daemon blocking and unblocking.

Change-Id: I8f159021d2b223d7003cec067de3aa605ad06974
Work in progress run-parts replacement.

Change-Id: Ie95b3ed2145594b5f6436454a6756012fc1c4729
Make populate_libs() more generic.

It can handle "path to path" output of ldd, such as
    /a/b/c.so => /x/y/z.so (0x123456789)

Change-Id: I68d1096694835818c9129212a02796e1ce1c181d
Use dib-run-parts for running scripts in target

Also modified dib-run-parts to apply a more workable solution for
filtering out unwanted files such as editor backups and VCS.

The script is installed in its own element, depended on by the OS
specific ubuntu element. This is  because the ubuntu element (and
later other OS's) are responsible for populating the root filesystem.
If we try to install this in base, the root filesystem will look to
be populated already and we will skip automatically choosing ubuntu.

Change-Id: I017646748c1a8360299106289b57d976d45875a8
Add dib-run-parts install command to sudoers.d

Change-Id: I8943d18efa4077da87cb822255f70c6541f32f30
New element that uses a fedora cloud image as the base.

Change-Id: I7d83bb2b359e7a8c3858eca04c96e35cf4e1fe9e
Allow elements to include skeleton config:

This code provides 'use-config-templates' for elements
to use to install os-config-applier templates to
/opt/stack/openstack-config-templates.

These templates will be filled in from heat
metadata by os-config-applier upon first boot.

This change updates keystone to install templates
in this way as an example.

Change-Id: I0be0a79a431e9ba5b80e84f130c48d5ce8b100ae
Run os-config-applier immediatley on first boot:

ensure os-config-applier runs before other first
boot scripts which may depend on config being in place.

Change-Id: Ic49fb965370c676de53ef6eb4094bf74340f56ec
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.

Change-Id: I72751d4da59f8597d20aea2f27a9dfabe2f63a8f
Add an openstack all-db element.

Change-Id: I6efe807793ec620a60d5798d28a7e3103a5b90e8
Keystone element.

Change-Id: I15595d80ee7fad04d964aaa83a403d9303f6aa55
Add a cinder element.

Change-Id: I4729cf003896c3b4f8267d16e1b4822099231051
Overhaul glance element.

Change-Id: Ie40c9725cbc27445e10ffde8eeff422bd121d5b5
Add a nova-virt element.

Change-Id: I2e5cbfdfd0da930050ec86d6ee536910bebc64c9
Add a nova-baremetal element.

Change-Id: I4b439485c32402fa98e45dfea976538e43b770ad
Add a quantum element.

Change-Id: I9de3d85e800c9ea9accafffc92e1cfcafa5c3fdd