Shorten log message in SPCP regarding restarted compilation units

The `toString` message prints a string representation of the entire
tree, which is unnecessary.
Interrupt Scala builder on resource change

Whenever Eclipse is configured to automatically build, an interrupt
event is sent to all builders whenever an resource change happens in the
workspace.

The Scala builder didn't react on such an interrupt event so far - this
changes with this commit.

Beside from aborting the current running build, the build is restarted
after the resource change event is handled.

Fixes #1002229
Merge pull request #767 from sschaef/t1002229-interrupt-build

Interrupt Scala builder on resource change
Merge pull request #766 from sschaef/shorten-pc-log-message

Shorten log message in SPCP regarding restarted compilation units
Add `ScalaDocumentProvider`

This class is necessary to overwrite the existing behavior of Java save
actions. Because the Java code is not extensible it is copied to the
Scala to `ScalaDocumentProvider` in order to call Scala save actions.
Start implementing API for Scala IDE extensions

This introduces several new traits in the new package

    org.scalaide.core.text

The main design goal of this text API is to provide a safe environment
users can work on. The entire API can't change the underlying documents,
it can only produce change objects that need to be passed to the IDE,
which can decide what to do with the changes.
Add save action support

This adds support to execute save actions in the
`ScalaDocumentProvider`.
Add remove trailing whitespace save action
Add new methods to Document API

Common methods are added: apply, head, tail, init, last (+ safe variants
that return an Option)
Add save action that adds new line at end of file
Add compiler support for save actions

It is now possible to choose if a save action should operate only on
a low level text API or on the entire API of the compiler.
Add save action setting functionality

This is an API extension that allows save action authors to show
information about the save action to users.
Add setting support to `RemoveTrailingWhitespace`
Add setting support for `AddNewLineAtEndOfFile` save action
Add preference page for save actions
Add preference initializer for save actions
Implement setting functionality in `ScalaIdeExtension`

This allows the logic that executes the save actions to filter out all
save actions that are disabled.
Sort save actions by name in preference page
Simplify `SaveActionSetting`

The properties `textBefore` and `textAfter` are replacey by
`codeExample`. The reason for this is that it is more useful when the
IDE computes the changes a save action is doing instead of hardcoding an
example into the sources.

However, without the ability to create save actions at runtime, this
functionality can't be implemented yet because we can't inject
dependencies easily into the save action instance.
Add save action for auto formatting