Move the useful functor wrapping task from test to wrappers file.

This allows other people to use it :-)
Add the ability to associate a workflow with a job.

Connect a workflow to a job and associate all the needed
plumbing to allow the workflows states to be resumed and
tracked correctly using said jobs logbook.
Move some of the useful helpers and functions to other files.

To allow others to use said nice classes and functions we should
move them out of testing for general usage by others.
Updated functor task comments
Allow the functor task to take a name and provide it a default.
Merge pull request #12 from harlowja/code-movement

Code movement