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