Revert "Disable tab to spaces converter of `TextViewer`"

This reverts commit 541b9e00fb858064684b099f43e045a44421f192.

This commit has the unseen side effect that on copy and paste of text
that contains tabs, the tabs are no longer converted to spaces. This
revert resolves this problem, but forces users to enable tab to space
conversion in the Java formatter.
Automatically convert tabs to spaces

This commit disables the default tabs to spaces converter in the editor
and instead adds one that is configured in the source viewer. This has
the advantage that we don't rely on Java preferences anymore but
consider our own ones.
Remove `EclipseUserSimulator`

All of its definitions were moved to `SDTTestUtils`.
Merge pull request #775 from sschaef/remove-eclipse-user-simulator

Remove `EclipseUserSimulator`
Fixes switching between Scala Installations

It was a typo is a match case, introduced during the API refactoring
Fixed NPE on first start on Luna

In Luna preference initializers are called asynchronously outside of the UI thread.
The code used to get the current window was not working when not run on the UI thread.
The code from SWTUtils has a nice fallback.

Fixes #1002242
Merge pull request #782 from skyluc/issue/npe-key-binding-migration

Fixed NPE on first start on Luna
Merge pull request #781 from skyluc/issue/match-error-installations

Fixes switching between Scala Installations
Moves non-API logging classes in internal packages
Merge pull request #776 from sschaef/tab-to-space-conversion

Tab to space conversion
Merge pull request #783 from skyluc/issue/API-logging

Moves non-API logging classes in internal packages
Update entries of moved logging packages in Manifest files

This is an oversight in a565e58ddb044.
Merge pull request #785 from sschaef/remove-logging-from-manifest

Update entries of moved logging packages in Manifest files
Don’t add an empty parameter list for Java getters.

Fixed #1002171
Use the computed (local) type in the completion proposal.

This offers more precise tooltip info for inferred types
at the point of application. For example:

```
val xs: List[Int]

xs.map(| // this will now show f: Int => B
```
Puts the scheduling rule on the right project
Correcly log exceptions from tryExecute
Removes scheduling of job in prepareJob method
Removes unnecessary sync code in ClasspathTests
Merge pull request #788 from skyluc/issue/ClasspathTests-cleanup

Fixes a few issues linked to ClasspathTests