Be more careful when passing result to revert()

Instead of passing result as separate keyword argument (which may
lead to strange TypeError exception) we put it to kwargs dict.

Change-Id: I899763e047badeadfd367aa1f06ba4cf6c1b0951
Let pbr determine version automatically

PBR can derive version from most recent tag when it is not set
in setup.cfg. Let's use that.

Change-Id: I7fd8896bc15166441e3dbf27fd5320a374008070
Don't reset tasks to PENDING state while reverting

While flow is in REVERTING or REVERTED state, reverted tasks are now
left in REVERTED state. They are then reset to PENDING state when flow
is run again. With this change:

- when task is in REVERTED state, its result (if task were
  successfully executed before) is removed, but its failure (if its
  execution or reversion failed) is still available from storage;
- when flow is in REVERTED or FAILURE states, you can get all task
  failures from storage;
- if flow is in REVERTED or REVERTING state, but task is in PENDING
  state, it means this task was never executed;
- flow cannot transition from REVERTED to RUNNING state any more -- it
  should go through PENDING state; on REVERTED -> PENDING transition
  tasks of the flow are reset.

This ensures that failure information is available until it becomes
irrelevant.

Closes-bug: #1246612
Change-Id: I27c3891f5d412d6de6240638b5014afda94a58a4