This is a small refactoring that improves a bit the Scala launcher:
* the existence of the main class is checked in `finalLaunchCheck`, instead of inside `launch`
* compilation errors are done through markers, and integrates with the platform error message. The check is
also done during `finalLaunchCheck` and now prompts the user if any required project has compilation errors
Fixed #100740, possibly others.