Gracefully handle unknown JDK classpath containers.

If the JDK required by the project does not exist, `getClasspathContainer` returns null.

Fixed #1001249.
No need to block the whole workspace to add a marker.

Resources do the necessary scheduling already inside `createMarker`.
Formatting.
Issue errors if the class path contains cross-compiled libraries with a different major version of the Scala compiler.

Identify jars with `name_2.x.y-??.jar` and compare the plugin version with the one in the name, issue errors for each library that is not compatible.

Fixed #1001441.
Reviewer's comments.
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.
Reverts moving waitUntil

Reverts also the logic change
wip

Conflicts:

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