Fix minor python3 incompatibility

We were using xrange in taskflow.utils.misc.ExponentialBackoff.

Change-Id: Ia56293607d2c08cf1facbceb5c90e38d046bac22
Fix sqlalchemy 0.8 issues

Use import of exc instead exception.
Mutability tracking is changed in SQLAlchemy 0.8,
but it seems that sqlalchmy.types.MutableType is not needed
in classes Json and Failure from models.

Closes-bug: 1206669

Change-Id: Ib13c2575ead495b22ed5624e68e044e2f4927201
Merge "Fix sqlalchemy 0.8 issues"
Storage: use names instead of uuids in interface

Instead of exposing and requiring engines and users to use uuids,
storage now provides more convenient interface that allows to do
anything with task by its name.

Storage is now the entity that maintains name-to-uuid mapping. To
emphasize that, find_by_name method (now unused) was removed from
FlowDetail.

Breaking change: this will break clients that use storage to manipulate
tasks. Clients that use engine.storage only to fetch results with
'fetch' and 'fetch_all' methods (which is the recommended way) are not
affected.

References blueprint task-executor
Co-authored-by: Ivan A. Melnikov <imelnikov@griddynamics.com>
Change-Id: Icbdb745c1ed84c5ac21c6f3a275f32c0b2939d90
Do not create TaskAction for each task

Instead of creating TaskAction for each task we create single TaskAction
in engine, that knows how to run tasks for it. We also got rid of engine
dependency of TaskAction, passing storage and notifier to it instead.

References blueprint task-executor
Co-authored-by: Ivan A. Melnikov <imelnikov@griddynamics.com>
Change-Id: Ie52eba3bba5c730cee091ee24e995e0ba21f9486
Run some engine tests with eventlet if it's available

This change adds test cases that run some of engine tests against
parallel engine with GreenExecutor if eventlet is available, in addition
to current tests for single-threaded engine and parallel engine with
native threading executor.

Change-Id: I7be6de9a80034b7363fb9e0680d63090a05d1c12
Merge "Fix minor python3 incompatibility"