Minor refactor of job logic in the controller

So that execute_launch_config will be easier to read, since all the job logic will be self contained.

There is some overlap between the `execute_launch_config` tests and `_Job` tests, but the `execute_launch_config` tests remain because I want to make sure the functionality has not changed.  Possibly they should be moved/updated when more of the controller gets refactored?

Functional cloudcafe tests pass.