Add a more dynamic/useful logging listener

Both cinder and glance are starting to share the same logic
for there engine notification listener, so instead of having
them copy around that code it will be much nicer if taskflow
can just provide itself a more capable listener that both
can share and use directly.

This avoids users of taskflow having to understand more about
the internals of taskflow and its associated state then they
likely need to understand (which makes taskflow easier to use
and less work to integrate).

Relevant locations where this already exists:

- https://github.com/openstack/cinder/blob/master/cinder/flow_utils.py
- https://review.openstack.org/#/c/85211/

Change-Id: I98eeb180b31bd488ae0eadd730e1530d7bae1f1f
Merge "Add a more dynamic/useful logging listener"