Enable accidentally disabled inferred semicolon painter

This is by far not the best fix, because it is working around of the
purpose of the `EditorPainter` superclass. This class was introduced to
easy the implementation of a painter, but as it turns out now its design
is not scalable.

In Eclipse one has to install a listener to a document to get notified
when a change happens. This model does not work together with the
`EditorPainter` class because it would have to install all listeners the
subclasses need and not forward the occurring events when the painter is
disabled.

It would be better if the event wouldn't be sent at all when the painter
is disabled, but that is more or less a design limitation of Eclipse,
which we can't easily work around.

For now complexity needs to be added again to the subclasses of the
`EditorPainter`, in this case to `InferredSemicolonPainter`.

Fixes #1002153
Disable unnecessary running "show semicolon" when it is disabled

Fixes #1002170
Reformat error messages from presentation compiler

Printing stack traces directly to stdout results in difficult readable
error messages.
Merge pull request #746 from sschaef/reformat-error-message-in-pc

Reformat error messages from presentation compiler
Merge pull request #744 from sschaef/fix-semicolon-painter

Fix semicolon painter
Merge pull request #743 from dragos/master

A more sane error message about what profile is missing.
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