Improve the robustness of the deployment via a few methods:

- add retry logic for starting the master process
- shutdown existing slave services before the master service
- log an error when 'clusterrunner stop' fails
Side question: what do you think of renaming the `RemoteMasterService` class to something different, maybe `DeployedMasterService`? "Remote" makes it sound like it's specifically not local, but it seems like that's not true, right? (We should save renames for a separate commit, but I just wanted to mention the thought.)