Adds support for Scala 2.12
Bumps to master sbt version
Adds 2.12 support in ScalaInstallationTests
Adds 2.12 support to ClasspathTests
Adds support for 2.12 in breakpoint tests
Specialize Scala 2.11 feature for 2.11 and 2.12 build

The Scala 2.11 feature for the 2.11 build has a reference to the bundled
Scala 2.10 jar. We don't want this reference for the Scala 2.12 build.

This will be removed when the need of the bundled Scala 2.10 jar is fixed.
Fixes shortString method for version <= 2.9

And move common code in CompilerUtils
Merge pull request #727 from skyluc/2.12-support

Adds support for Scala 2.12
Adds a Directory-based Scala Installation subclass
Hooks in Addition/Removal for Scala Installations

Limits custom versions to >= 2.10
Adds a ScalaInstallation serializer helper

Hooked in Scala Installation Serialization
Deals with deserializations, including that of bundles
Hardens scala jar detection in case of multiple suitable jars

Harden against non-binary-compatible {compiler, reflect, ...}.properties
Plugs in ScalaInstallation choices
Container edition triggers Scala Installation choice

Container edition sets the desired scala installation,
updates the compiler settings view from Pub/Sub model.
Rationalizes ScalaInstallationChoice usage
The builder is now explicitly connected to scala desired version resolution
 (previously only worked as a side-effect)
Compiler Settings modification consistence

- in case of page flipping on a dirty compiler settings page,
  issues a warning message
- scala installation combofield selection now updates the apply button correctly.
Classpath Container Editor sets the initial selection.
Linting

- error messages
- using SWTutils for Listeners
- factorizes ScalaProject usage
- make installation hashes portable