Added javascript charting for the memory leaks test, so that it can be loaded directly from Jenkins.
Add initial support for semantic highlighting
Refined places where askOption need to be used in ``SymbolClassifier``.

+ Made sure that symbols are managed only within the Presentation Compiler Thread.
+ Prevented NullPointerException during SemanticHighlightingReconciliation.createSemanticDecorationManagers (as the editor may be null).
+ Followed Mirko's suggestion (https://github.com/scala-ide/scala-ide/commit/11fd6167587d24bd52fe3952220b87278677691f#commitcomment-972940), i.e., removed `TreeCreationMethods` mixin from `SymbolClass ification` class.

Also, in SymbolClassification, there is no need to store the source file
content in a string.  This is really needed only if the user enabled
`useSyntacticHints`. Not doing it by default can save a few cycles,
particularly for big files.

Further, I've added SymbolClassifierTestSuite to the TestSuite, so that the
tests are run at every build.
Unfortunately, it is required to execute `index.occurrences` within an `ask`.

The reason is that `index.occurrences` can trigger `sym.flatOwnerInfo`, which
can result in a call to `sym.rawInfo` (and that has to be always performed
inside the Presentation Compiler thread).
Resolved conflicts occurred after rebasing the semantic-highlight branch with
master.

The only fix was to update the import to the ``HasLogger`` trait, which moved
from package ``scala.tools.eclipse.util`` to ``scala.tools.eclipse.logging``.
Ignoring failing test ``TypeTest.set_is_type``.

Here is the test's output:

```
set_is_a_type(scala.tools.eclipse.semantichighlighting.classifier.TypeTest)
java.lang.AssertionError: Actual != Expected.
Expected:
  Region(25,3) 'Set' Type
  Region(77,3) 'Set' TemplateVal
Actual:
  Region(25,3) 'Set' Type
  Region(77,3) 'Set' Type
```

I did spend some time in trying to fix it, but the reason was not obvious, it
would be great if Matt (@mdr) could have a look at it. I'll open a ticket for
it so that we don't forget to fix it, but I'd like to push semantic highlighting
on master right away.
``SymbolClassifier`` does not need to initialize symbols.

https://github.com/scala-ide/scala-ide/pull/81#r553051
Merge pull request #81 from scala-ide/issue/pcfixes-and-rebased-semantic-highlighting-1000591

Add initial support for semantic highlighting
Because of a potential deadlock in the Eclipse internals, the log action need to be executed in the UI thread.

This is a temporary (and not really ideal) fix for #1000914. I've opened a ticket in the Eclipse buzilla: https://bugs.eclipse.org/bugs/show_bug.cgi?id=374272.
Merge pull request #72 from 'scala-ide/issue/logger-deadlock-1000914'

Fixed deadlock occurring when accessing the Eclipse Log.
Correctly handle preferences change events

Some Java preferences get set the first time a code template is
used. This preference changes trigger UI updates, but the Java editor
(base of the Scala editor) does not execute these UI updates in the right
thread.
Forcing those preference change to be run in the UI thread.
Fixes #1000738
Merge pull request #82 from scala-ide/issue/invalid-thread-access-1000738

Fixes the invalid thread access generated when creating a Java file for the first time
Fixed nightly builds.

Allow me to elaborate on the reason of the failure:

The key element is the ``ColourPreferenceInitializer``, which is eagerly
intialized by Eclipse through the extension point:
``org.eclipse.core.runtime.preferences``, declared in the plugin.xml.
The initialization of ``ColourPreferenceInitializer`` results in a call
to ``ColourPreferenceInitializer.initializeDefaultPreferences``, whose implementation
currently depends on UI classes belonging to ``org.eclipse.jdt.ui`` bundle.

This caused some tests to fail in our CI server because the session executing the tests
on that machine does not have access to display components.

The resulting stacktrace was something on the line of the line of:

```
java.lang.NoClassDefFoundError: org/eclipse/jdt/internal/ui/javaeditor/DocumentAdapter
[...]
Caused by: org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter$TerminatingClassNotFoundException: An error occurred while automatically activating bundle org.eclipse.jdt.ui (45).
[...]
Caused by: java.lang.NullPointerException
	at org.eclipse.jface.resource.FontRegistry.calculateDefaultFont(FontRegistry.java:519)
	at org.eclipse.jface.resource.FontRegistry.defaultFontRecord(FontRegistry.java:562)
	at org.eclipse.jface.resource.FontRegistry.defaultFontData(FontRegistry.java:575)
	at org.eclipse.jface.resource.FontRegistry.getFontData(FontRegistry.java:591)
	at org.eclipse.jdt.internal.ui.JavaPlugin.ensurePreferenceStoreBackwardsCompatibility(JavaPlugin.java:448)
```

The actual fix is pretty stupid: the implementation of ``ColourPreferenceInitializer.initializeDefaultPreferences``
is now executed only if ``headlessMode`` is disabled.
Fixed nightly build for trunk by delaying the initialization of UI classes. See comments inside ColourPreferencesInitializer for the gory details.
Fixed the nightly build for trunk. Bumped the sbt version number to 0.11.2-scalaide-03
Fixed the trunk build. Actors moved to their own package, so we package them together with the scala-library bundle.
Restored source attachments to the standard library.
Added back dependencies for the trunk profile. Maven profiles are confusing: even though the default-libs profile is active by default, and adds the 3 dependencies, they are not part of the generated output when the scala-trunk profile is on.
Wrapped unsafe call to `isDeprecated` in an ask.
Fixed failing nightly test in hyperlinking, and added a couple more tests.