Return `OK_STATUS` from the semantic highlighting job when the editor is dirty.

Previously, we announced that the job finishes asynchronously (`ASYNC_FINISH`),
but forgot to call `done` if the editor was dirty (and no UI asyncExec was
performed at all). This lead in turn to the job manager thinking that the job
is still running and not scheduling another run, ever, meaning the loss of
semantic highlighting.

Fixed #1001536.(cherry picked from commit 5e511529b0565dd27448a5bc07877d0120ddf679)
Expanding variable in debugger resulted in NPE

The regression was introduced by SHA: be83fc8f7c40c71269d5e7315594896e6b85ab69.

The reason for the regression is that the name of the class
``ScalaLogicalStructureProvider`` was inadvertently changed to
``ScalaLogicalStructureProviders`` (note the final **s**). Since that class was
linked to the *org.eclipse.debug.core.logicalStructureProviders* extension
point, as soon as the debugger code needed to load that class an exception is
reported.

What we should do to avoid this sort of errors in the future is setting the PDE
compiler flag for "References to non-existing classes" to *Error*. Furthermore,
it would be good if this check could be enforced in our Tycho build (I've asked
in the tycho-user ML,
[here](http://dev.eclipse.org/mhonarc/lists/tycho-user/msg04110.html) is the
link to the discussion).

Fix #1001586

Backport to _release/3.0.x_
(cherry picked from commit ca3a67d8768d185ec5547ce4ddb77ab1a21709d8)
Merge pull request #346 from dotta/backport/3.0.x/issue/expanding-variable-in-debugger-view-produces-NPE-1001586

[backport] Expanding variable in debugger resulted in NPE
Merge remote-tracking branch 'upstream/release/scala-ide-3.0.x' into release/scala-ide-3.0.x-juno