Use the runner interface as the best task lookup.

Instead of having to examine tasks for requires
or provides or optional properties/attributes, have
the runner class do this instead and then have the
flows which use the runner class just access the known
to exist attributes directly.

Change-Id: I2db4ce5296bdbd50e882f5940572a4c513e73d20
Unify creation/usage of uuids.

Instead of using the name it is likely better to
give the flows a uuid and use that for tracking
purposes rather than using the flow name (which
maybe duplicated). Also unify the usage of the
job tracking id -> uuid as well as adjust the
visibility of said uuids (to be read-only).

Change-Id: I592800bd9e08e3a7bde33ff250a454588324f052
Merge "Unify creation/usage of uuids."
Merge "Use the runner interface as the best task lookup."