core: change how async tasks are persisted using TaskHandlerCommand

Add a way to specify the taskKey of the to-be-persisted task, by
introducing new method that gets the key as a String.

The previous way that was exist for adding async tasks by the
TaskHandlerCommand send the action-type of the enclosing command as the
parent command. this behaviour is now being generalized - the enclosing
command itself will determine whether it should be the parent or other
by override the persist* methods in TaskHandlerCommand interface.

Change-Id: Iee869f68724e67e256e7342f3a5201b7e6d3a30c
Signed-off-by: Arik Hadas <ahadas@redhat.com>