A launched application returns an instance of this class in order to communicate to the launcher
that the application's main thread is finished and the launcher's work is complete, but it should not exit.
A launched application returns an instance of this class in order to communicate to the launcher
that the application finished and the launcher should exit with the given exit code.
A launched application should return an instance of this from its 'run' method
to communicate to the launcher what should be done now that the application
has completed.