Indent multi line string literals based on Scala preferences

In the case that smart indentation is disabled, but the insertion of
tabs is enabled, a Java preference was considered.

Fixes #1002167
Disable tab to spaces converter of `TextViewer`

There exists a `TextViewer#setTabsToSpacesConverter` method, which sets
a converter each time the Java preference in "Java -> Code Style ->
Formatter -> Edit -> Indentation -> Tab policy" is changed. This does
not work together with the Scala IDE auto edits, which need to know if a
tab was pressed to handle it in the right way.
Don't use Scala reflection for asInstanceOfOpt

asInstanceOfOpt is broken by trying to be too smart. There is no point
in using runtime reflection for subtype checks, since the value on which
we reflect only carries the erased type anyway. Simplified to use
`ClassTag` and documented the behavior.

Fixed #1002128, #1002152
Merge pull request #732 from dragos/issue/fix-asInstanceOfOpt

Don't use Scala reflection for asInstanceOfOpt
Merge pull request #730 from sschaef/t1002167

Disable tab to spaces converter in TextViewer
Don’t reuse platform classloader when ScalaInstallation matches its version.

Remove the optimization that reused the platform class loader when the desired
Scala version matched the one installed in Eclipse. This proved to break due
to OSGi restrictions and the implementation of DelegatingReporter in the
compiler-interface.jar

See #1002175 for details
Merge pull request #733 from dragos/issue/fix-nightly-build

Don’t reuse platform classloader when ScalaInstallation matches its version
Move `TestsSuite` to `org.scalaide` package
Add `FileCreator` interface

This interafce is public API
Add `ProjectUtils` and `Commons`

These class contain helper methods used by the new file wizard.
Start implementing `ScalaFileCreator`
Add validation logic to `ScalaFileCreator`

There is one flaw left in this validation logic: It only checks if an
identifier is a valid Java identifier and if it is no Scala keyword. For
package paths it should also check if they are no Java identifiers and
for file names it should check if the name is a valid Scala identifier
(which can contain special signs).
Add logic to `ScalaFileCreator` that generates template variables
Enable wizard tests in test suite
Add file creation logic to `ScalaFileCreator`

This doesn't contain any tests because tests that check changes to the
file system are difficult to write.
Add org.scalaide.ui.wizards.fileCreator extension point
Add new "New File Wizard"

For more information about this wizard see the proposal that can be
found in the associated ticket.

Fixes #1002103
Add combo box that can show images

This introduces a dependency to the Eclipse Nebula project because a
combo box that can show images is not part of SWT or JFace.
Validating logic now checks Scala and Java keywords

Previously it was only checked if identifiers can not correspond with
Java identifiers which is not enough for Scala identifiers.

Furthermore package names are not allowed to contain Java identifiers.
The Eclipse package hierarchy view can't display them correctly and even
the Java compiler of JDT seems to have problems with them.
Create first file creator for the new file wizard