refactor(job): New Job workflow

* Indicate state transitions for Jobs through a target state
* Present an explicitly Job state to the user
* Separate scheduling and starting of a Job