Refactor DynamicService::change_service_state to use actors and job reporting correctly and catch invalid services.

As implemented previously, `::change_service_state` was a synchronous action, which means that, even though the job was being passed through, the `CliClient.new(job).display` was not being called until after `::change_service_state` was complete so no job display ever occurred. If anything went wrong during the synchronous call, an Dead Actor error would throw when `CliClient.new(job).display` was called, as the job is dead by that point, causing a cryptic Dead Actor error to display to the user.

::change_service_state was not checking if the service requested was actually defined in the plugin referenced. When an invalid service is provided by the user, the above problem would surface, triggering a Dead Actor error.