Update the API for passing options to the runner when calling its run function.
Add options classes to separate that code away from the Runner/Process and improve reusability
Add the ProcessTask which represents a process to be executed. It is how used by the runner to spawn processes
and it is used by the Manager to queue tasks