Adds support to detect available Scalas

Detects both bundled jars and multi-bundles installations
Merge pull request #693 from skyluc/issue/detect-multi-scala

detect multiple scala
Added the ability to compile the sbt compiler-interface on the fly and use it.
Reviewer’s comments.
Fixes memory test configuration

Because the m2 repos are no more used in this part of the build, the
version for the needed Scala jars are no more pre-set.
Merge pull request #698 from skyluc/issue/fix-memory-test

Fixes memory test configuration
Merge pull request #694 from dragos/issue/on-the-fly-compiler-interface-2

Added the ability to compile the sbt compiler-interface on the fly
The ScalaBuilder chooses the Scala compiler version based on the project class path.

This commit adds the ability to build with either the current (at the time of this
work, 2.11) Scala compiler, or a previous version. The previous version is chosen
when a project is in “compatibility” mode, and the `-Xsource:` flag is used to put
the type-checker in the right mood.

The Scala builder now chooses a ScalaInstallation based on the Scala version on the
class path. The builder infers what Scala installation best matches the Scala Library.
It works by using the resolved class path, meaning that the Scala class path
container (if present) is honored as-is. If the `-Xsource` flag is set, but the Scala library is
still the platform version (2.11 at this time), the Scala library *on the classpath*
what determines the builder version of Scala.
Merge pull request #697 from dragos/issue/on-the-fly-classloaders-2

Build support for several versions of Scala
better scala container addition tagging
Basic status handler for the Xsource flag
Switch ScalaPresentationCompilerProxy.failedCompilerInitialization to Status Handlers
Centralizing thread Management for handlers
Aggregate Initialization Failures in ScalaCompiler reference validation
Switch UIErrorReporter to status handlers
TIghter threading behavior for Handlers

They are now syncExec, and all but one synchronize on an exterior variable.
Indeed, event queues make them fire often :
- CompilerLaunchError : obviously
- ClasspathError : the Xsource modification triggers a classpath Check through the listener added to projectSpecificSetting.

TODO : instead of this, In ScalaProject's projectSpecificStorage, fire a java model Delta
	that can be caught by ScalaPlugin's elementchanged.
Removes split pre-compiled compiler interface

Only base version version is packaged (and not used at runtime). The source bundle is used at runtime.
Merge pull request #699 from skyluc/issue/no-need-specific-compiler-interface

Removes split pre-compiled compiler interface
More informative logging about resetting compilers.

Slightly changed the deprecation warning test, trying to work around possible
race condition.
Merge pull request #700 from dragos/issue/flaky-deprecation-warning-test

More informative logging about resetting compilers.