add pre/post execute/retry callbacks to tasks

This enables us to execute code to set up or tear down
global state in running tasks.

Change-Id: Ib1e5d03ab46b3ce1d03fa83b91bf437fa950b758
Implements: blueprint task-callbacks
Merge "add pre/post execute/retry callbacks to tasks"