Add private base classes: `LocalLauncher`, `RemoteLauncher` Derive from LocalLauncher: `StandaloneLauncher`, `SlurmLauncher`, `DetachedLauncher` Derive from RemoteLauncher: `ContainerLauncher`, `PIMLauncher` Related PR #4028 (to be merged first)