Reworked PR

* Check for build errors is performed only if the a classfile for the `mainTypeName` provided in the Run
  config can't be found. Hence, if the classfile exist, this allows you to run your application even if
  there are errors in the project.

* `ScalaLaunchDelegate.finalLaunchCheck` does not longer call `super`. This is to avoid the Java Eclipse
  prompt is displayed. Instead, the `UIReporter` is called, and I've improved it to be a standard platform
  dialog. The improved dialog also allows users to by-pass the check.

* This patch breaks source compatibility (because I removed the MainClassVerifier constructor, and deleted the
  `ErrorReporter` trait). I could re-introduce them and use deprectation, but it doesn't seem worth the effort.