Indent multi line string literals based on Scala preferences

In the case that smart indentation is disabled, but the insertion of
tabs is enabled, a Java preference was considered.

Fixes #1002167
Disable tab to spaces converter of `TextViewer`

There exists a `TextViewer#setTabsToSpacesConverter` method, which sets
a converter each time the Java preference in "Java -> Code Style ->
Formatter -> Edit -> Indentation -> Tab policy" is changed. This does
not work together with the Scala IDE auto edits, which need to know if a
tab was pressed to handle it in the right way.
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
Don't use Scala reflection for asInstanceOfOpt

asInstanceOfOpt is broken by trying to be too smart. There is no point
in using runtime reflection for subtype checks, since the value on which
we reflect only carries the erased type anyway. Simplified to use
`ClassTag` and documented the behavior.

Fixed #1002128, #1002152
Merge pull request #732 from dragos/issue/fix-asInstanceOfOpt

Don't use Scala reflection for asInstanceOfOpt
Merge pull request #730 from sschaef/t1002167

Disable tab to spaces converter in TextViewer
Don’t reuse platform classloader when ScalaInstallation matches its version.

Remove the optimization that reused the platform class loader when the desired
Scala version matched the one installed in Eclipse. This proved to break due
to OSGi restrictions and the implementation of DelegatingReporter in the
compiler-interface.jar

See #1002175 for details
Merge pull request #733 from dragos/issue/fix-nightly-build

Don’t reuse platform classloader when ScalaInstallation matches its version
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