Ensure that when the task executor is started that we
correctly create a new multiprocessing manager (if needed)
and that on stop we correctly shut that manager down and
join it.
Also does a tiny adjustment to the joinable work item to
move the finish logic into its own method and ensures that
we have no targets on reset of the dispatcher.
Change-Id: I688df323fb24a7e228f4fa237f2fa772d9c0dc62