Support password authentication.

Add alternative authentication middleware to authenticate against Keystone using
username and password instead of validating existing auth token. The benefit
being that you no longer require admin/service token to authenticate users.

To use, update heat-api.conf:
     [paste_deploy]
     flavor = standalone

This should make it possible to try heat out against existing public
clouds.

Change-Id: Ia584bba78e8984581f0fb6882bbb17d5efa238db
Add a PollingTaskGroup task

A PollingTaskGroup can monitor a collection of subtasks.

Change-Id: I5db4e7a9d32647397f3229e7654aa0fb68d794ce
Add a wrappertask decorator

It is common that we might want to create a task that is a light wrapper
around another task. This allows us to, for example, call some clean-up
function after a PollingTaskGroup has completed. We really want to make
sure that any exceptions caused by timeout or cancellation get passed on to
the subtask as well.

Python 3 sports the "yield from" keyword (PEP 380) that effectively allows
the sort of nesting of generators that we want to do here. This change
provides a decorator function that allows the decorated generator function
to do the same thing using the "yield" keyword, even in Python 2.

Change-Id: I110141f2891ed35b8ffe98ec6ae8b42738f7db64
Use a PollingTaskGroup to simplify autoscaling

Change-Id: I608930784b18437b4745962dc6f8bdd8b47355b6
Use scheduler for driving autoscaling task

For threads that drive autoscaling events, run them to completion using the
task scheduler, to abstract out the sleeping from the main code.

Change-Id: I9b21404a171d92d6edbc59d3099d3ee34f08e22d
tests : utils parse_stack allow stack_id override

Allow the stack_id to be specified, required for some tests

Change-Id: I35f236bd26ae0140e41485f9762ef09df00144b1
tests : utils parse stack specify tenant in context

Some tests require the tenant name (not just the tenant_id)
to be set

Change-Id: I381701cc83ba419041df6102fd8b47d88c5b2c3f
docs : update local template references to heat-templates url

Update references to the to-be-removed in-tree templates, so
we use raw URLs to the heat-templates repo instead

Change-Id: I2121cedc2bffe1760d845dd2d87d97dd2265f1e9
tools : remove fetch-cloudformation-examples

This template-related script now lives in the heat-templates repo

Change-Id: Id1940ca1217572145da8eb37b690704a7f06205d
Add test to handle nova BUILD status on create

Other tests assume nova will return an ACTIVE server on create, which is
somewhat unlikely.

Fixes bug #1133580

Change-Id: I6ccc079e8978894f7648a6000f74869434c600f6
Wait for any nova server status that makes sense

Nova may return some transient states based on operator actions that do
not mean a resource has failed. Rather than report these as unexpected,
wait on them just like BUILD.

Fixes bug #1140324

Change-Id: I757c073fb8a7da44f41e9a9cb9ae71dbc35d3c33
Fix skips done in the test suite by using testtools skipIf

The shipped skip_if function was broken as skipIf is already a
decorator.

Change-Id: Ifc5c3a7878fa047fe1a807c43d91fe34bc7b4081
Merge "Add a PollingTaskGroup task"
Merge "Support password authentication."
Merge "Add a wrappertask decorator"
Merge "Use a PollingTaskGroup to simplify autoscaling"
Merge "Use scheduler for driving autoscaling task"
Merge "Fix skips done in the test suite by using testtools skipIf"
Merge "Add test to handle nova BUILD status on create"
Merge "Wait for any nova server status that makes sense"