Created a debug cache

Has support to keep track of nested classes as they are loaded.
With unit tests.
Re: #1001001
Integrated the debug cache to the debugger

It is used in for breakpoints and step-over.
Fixes the first part of the ticket: nested classes.
Re #1001001
Updated according to the review comments

Tweaked the API to accept any type, and always work on the outer type.
Improved a filter in step over.
Separation of tokenizing logic from ScalaCodeScanner

To test the tokenizing logic, it was required to separate it from
the scanner because the scanner has dependencies to UI classes
that are not available in a UI-less testing environment.

The test class introduced in this commit is needed because it
doesn't yet exist. It contains test cases for all previous versions
of the ScalaCodeScanner including the changes done in PR #255.
Add syntax highlighting for @ and # signs

Fix #1001445
Merge pull request #285 from skyluc/issue/stepping-performances-1001001

debugger performance improvement (part 1)
Reverts moving waitUntil

Reverts also the logic change
Merge pull request #279 from sschaef/issue/scala-code-scanner-test

Add test class for ScalaCodeScanner
wip

Conflicts:

	org.scala-ide.sdt.core/src/scala/tools/eclipse/ScalaSourceViewerConfiguration.scala