Updated openstack/openstack
Project: openstack/taskflow  91793e4cf955f547e764c348b7b57efff6959b5e

Tweak engine iteration 'close-up shop' runtime path

1. Have the runner yield the final set of failures instead of
   raising them, this allows the same yield syntax to be used
   for all exit points that the runner run_iter() produces and
   now raise failures from the main engine run loop to match this
   change.
2. Use a context manager instead of try/finally to start and
   stop the action engines task executor (teenie niceness...)
3. When the engine run_iter() is used and the generator that is
   returned is closed, instead of breaking from the run loop, which
   can leave running tasks incomplete instead continue running and
   signal to the runner that the engine has suspended itself. This
   ensures that the running atoms are not lost when the generator from
   run_iter() is closed (for whatever reason) before finishing.

Also adds a bunch of useful tests that directly test the runner instead
of the indirect testing that we were doing before.

Fixes bug 1361013

Change-Id: I1b598e26f0b3877c8f7004f87bacdb7f5e9c9897