First save the steps, then update the status of the execution plan

We use the persistence layer to update tasks in the Rails app. Not
having the steps available in this phase causes issues there.

Dynflow will probably get the events API sooner or later, but for now,
this fixes the current issues.
Don't mess the test output with the logs

The action logger level is set to fatal because we don't care
about the actions itself in the tests and we test fails, which
pollutes the output a lot.

The dynflow logger is set to warn: we care about the errors there
more, but still not interested in info messages in general (might
be turned on when needed)
Better logging of state changes

The previous implementation caused the log messages around state
change even when no state was actually changed (because it was used
the method was used for deserialization as well). Moving to the action
should do the trick
Merge remote-tracking branch 'upstream/master-inecas'

* upstream/master-inecas: (3 commits)
  Better logging of state changes
  ...

Conflicts:
	lib/dynflow/action.rb
	test/test_helper.rb
Better state logging

Log also original state for ExecutionPlan and Step
Add prognames to loggers
Properly terminate PollingService
Changing progress_update to event

#event is much more general approach it’ll allow to build abstract
external actions with corresponding progress updaters on that without
cluttering Dynflow code itself.