Make dependency graph node class public

We're going to start making more use of it, so there's no point hiding it
away inside the Dependencies class.

Change-Id: I10c4a05493697f8834623cd798ef35161a0c219b
Make the mutable dependency graph a separate class

Rather than copying dictionaries internally, provide a separate Graph class
that can be copied externally as well.

Change-Id: Id0bd55944369da59d7da1713369fce0d73ffe814
Move deletion from dependency graph to __delitem__

Graph objects are mutable, and will in future be used for operations other
than a topological sort, so abstract out the code for deleting backlinks to
a node from the other nodes that have dependencies on it when it is
removed.

Change-Id: I86b81303ed2dffd969a2db10535761f108f4808a
Add a dependency-aware task group

Change-Id: I4524b4b220bdc02bdd7e3f9a5d84b1982cbee99f
Create resources in parallel where possible

Use the create co-routines with a DependencyTaskGroup to create resources
in parallel where possible, subject to their dependencies.

This implements blueprint concurrent-resource-scheduling with the exception
of nested stacks.

Change-Id: I4789ab11617b408622d8fc083e6b80a797d99e3a
Use heat-engine.conf for heat-manage config

Fixes bug 1184923

because prog was missing the CONF object was looking for
the config file in /etc/heat/heat.conf  this should have
been /etc/heat/heat-engine.conf

Change-Id: Ie23b9998df368274d69180e0d619b042dd9dc053
Merge "Make dependency graph node class public"
Merge "Make the mutable dependency graph a separate class"
Merge "Move deletion from dependency graph to __delitem__"
Merge "Add a dependency-aware task group"
Merge "Create resources in parallel where possible"