Added the ability to compile the sbt compiler-interface on the fly and use it.
Reviewer’s comments.
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.
Removes split pre-compiled compiler interface

Only base version version is packaged (and not used at runtime). The source bundle is used at runtime.
More informative logging about resetting compilers.

Slightly changed the deprecation warning test, trying to work around possible
race condition.
Bumps to Scala 2.11.2-SNAPSHOT
Makes sure to install the sbt compiler interface sources
Adds the sbt full library source feature to the update site
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.
"Desired source level" toggle

- creation
- modification of the Xsource flag on modification

- classpath error status handler monothreaded again

- Toggle sourceLevel in case of manual-only Xsource edition

- Grey out souceLevel if no useProjectSettings

- Prevent double dialog on close/clean project
Switch from IncOptions.copy to IncOptions.with* methods.

The copy method on IncOptions has been deprecated because it can't be
easily evolved in binary compatible way. As a replacement, with* methods
for parameter has been introduced. Let's switch to those methods, isntead.
Add support for IncOptions.{nameHashing, recompileOnMacroDef} flags

Add support for new incremental compiler options introduced in
sbt 0.13.2:

  * `nameHashing` that enables new (experimental) incremental compilation
    algorithm
  * `recompileOnMacroDef` that controls the behavior of a heuristic
     that takes care of invalidating of source files that depend on
     macros

Those two options are directly exposed as IDE project settings.

Other than that, I've made one small refactoring. We've switched to a new,
overloaded variant of `IC.readAnalysis` that takes IncOptions as an
argument. The new variant returns the right variant of analysis in both
cases when name hashing is enabled or disabled.

Fixed #1002117
Hides the Scala version chooser if runtime < 2.11

The possibility to build on different source level is only
available from Scala 2.11.
Do not show the UI if not applicable.
Filter both -Xsource and -Ymacro-expand options from the build compiler.

The two options are needed to put the presentation compiler in compatibility
mode, but they should not make it to the build compiler. (2.10 does replies
with `bad option:-Xsource`, for example)