Fixing non-exhaustive yet straightforward matches
Hardens isCheckingClasspath

Removing unwanted changes in ScalaClassPath constructor (merge error).
Harden Settings toggling
Switch most of Classpathmanagement internals to using ScalaVersion
rahter than Strings
remove deprecations/unused from sdt.debug
Avoid possible exception on lost ScalaInstallation
Remove duplicate class
Split Scala Installation Management
Moves BuildSuccess and its Listeners to Pub/Sub
Introduces api.ScalaProject

Moves most of functionality to API package for ScalaProject

Documents the API trait.
Reviewer's comments

Linting:
- Try.toOption rather than match x2
- reverting the switch of sourceOutputFolders to a Map[IContainer, IContainer]
- split ScalaInstallation, ScalaInstallationChoice, ScalaModule in their own File

Comments:
- typo in scalaVersion
- Documented classpathHasChanged's parameter
- 2.10 mention in TextHoverFactory

Removals:
- scalaLibraryFile removal
- ScalaProject's jdkPaths removal

Renamings
- ScalaProjectMessage -> ScalaProjectEvent
- scalaLib -> scalaLibrary
- allJars() -> allJars
- directDependencies() -> directDependencies
- exportedDependencies() -> exportedDependencies
- transitiveDependencies() -> transitiveDependencies
- sourceFolders() -> sourceFolders
- outputFolders() -> outputFolders
- outputFolderLocations() -> outputFolderLocations
- storage() -> storage
- hasScalaNature() -> hasScalaNature
- isClasspathValid -> isClasspathValid()
- storage() -> storage
- prepareBuild() -> prepareBuild
- isUsingCompatibilityMode -> isUsingCompatibilityMode()
- getHashString() -> hashString
- getDesiredSourceLevel() -> desiredSourceLevel()
- getDesiredInstallationChoice() -> desiredInstallationChoice()
- getDesiredInstallation() -> effectiveScalaInstallation()
adds space instead of comma in multi-ticket display
Merge pull request #749 from huitseeker/multi-tickets-display

adds space instead of comma in multi-ticket display
Merge pull request #747 from huitseeker/issue/ScalaProjectAPI

An API for ScalaProject
Update pref store reference in `ScalaSourceViewerConfiguration`
Update pref store references in scanner classes

There was no need to use multiple pref stores, only one is used now.
Replace references to Java partitions with references to Scala partitions

This shouldn't introduce any functional changes beside from the point
that everything related to partitioning (syntax highlighting, auto
edits) have a chance to not work anymore.

Some new Scala partitions are added, they replace partitions located in
`IJavaPartitions` and `IDocument`.

Because this is a no compile-time-save change, it could be that some
references are forgotten, but hopefully my grep-foo caught them all.
Enable Scala partitioning on all Scala files

After all referenes to Java partitions were removed, syntax highlighting
didn't work anymore because the `IDocumentSetupParticipant`, that
intrnally uses Java partitions was inherited from the Java plugin - a
problem which is solved by this commit.
Add new Scala partition to constructor call of `JavaHeuristicScanner`

The previously called constructor forwards to another constructor by
passing Java partition references, which obviously are not the right ones.
Use UTF-8 for tests.