Allow indent text to be passed in

Instead of forcing single space indenting allow
the indenting string to be passed in so that others
can provided their favorite indent (tabs, two spaces
or other...)

Change-Id: I2dfb3baeaecb8bed197429b591daed69eb8cc834
Finish factoring apart the graph_action module

Factor out the scheduling, running and completion components
of graph_action so that we can allow this to be plugged in with
other types of scheduling, running and completion strategies.

The newly added components are the following:

- A runtime container class (serves as a holder of some small
  utility functions) and all the other runtime components.
- A runner class that acts as the action engines run loop.
- A scheduler class that schedules nodes using a provided executor
  and returns futures that can be used to introspect there results as
  they complete.
- A completer class that completes nodes and futures that the
  scheduler started, persisting there results and doing any further
  post-execution analysis.

Part of blueprint plug-engine

Change-Id: I1dbf46654377fc34e9d90eeabf7b0062020bdc5e
Merge "Finish factoring apart the graph_action module"
Merge "Allow indent text to be passed in"