Do not erase task progress details

Before this change we used to loose any progress details set by task
when it was updating its progress when task state was changed from
RUNNING to SUCCESS (and thus progress forced to 1.0). This commit
fixes this, so that when progress is updated from the engine latest
progress details are preserved.

Breaking change: to allow details to be associated with progress
value they were set for we save progress and then return progress
value with details.

Change-Id: Ic90e61ee3dcf62731696a0f10134bc448e7d6384
Support for optional task arguments

We used to ignore optional task arguments (arguments of 'execute' method
with default value). With this change flow author can pass such
arguments to task by mentioning them in 'requires' and/or 'rebind'
task constructor parameters.

Change-Id: Ib92f87eb05623d30db6f1691d75c11376d45c87a
Merge "Do not erase task progress details"
Merge "Support for optional task arguments"