Initial commit of a Scala debugger.

It is enable using a checkbox in the preferences.
It replaces the Java based debug elements by the Scala ones.
Only terminate and improved step over actions are supported right now.
None of the labels are fine.
There are likely a lot of bug and other missing things.
I'll create some doc about it on the website.
Defining ??? in the model package for scala 2.9

??? was added in 2.10, and I'm using it in the code right now.
This change can be reverted when the model is fully implemented.
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.
Merge branch 'master' into feature/scala-debugger-1000864
``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
Improvements to the Scala debugger

Improved display of all elements.
Added support for resume action.
Added 'this' in variable list.
Created tests for all improvements.
Added hack of logical structure support.
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.
Merge branch 'master' into feature/scala-debugger-1000864
Support for toString in detail pane

Improved the support for logical structure for collections
Changed the display name for array indexes
Added support for symbols in names

With tests
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