Add helper for multi linked mode to EditorUtils.

Multi linked mode allows to edit one or more groups of linked fragments. The user may switch between groups with the tab key.
Add prerequisites for the new extraction refactorings

Add the mandatory classes and settings used by all extraction refactorings.
remove deprecated extraction refactorings

Removes the old implementations of ExtractMethod and ExtractLocal (replaced by the more generic ExtractValue) and their integrations in the quick assist menu.
add a uniform invocation method for all extraction refactorings

Adds the “Extract… Alt + Cmd + E” to the refactoring menu which
gives access to the following refactorings:

- Extract Value
- Extract Method
- Extract Parameter
- Extract Extractor

After invocation “Extract…” collects all applicable extractions based
on the currently selected code. In order to reduce the number of
proposed extractions, “Extract…” analyses the selected code for side
effects. If it assumes the code triggers side effects, it prefers
method extractions over value extractions if the according target scope
allows both.

Furthermore, this patch integrates the new extraction refactorings in the quick assist menu. The additional quick assist processor uses the identical implementation as the “Extract…” command.

Known limitations:
- Detection of side effects currently uses a relatively simple
heuristic that may lead to impracticable proposals

Conflicts:
	org.scala-ide.sdt.core/plugin.xml
Highlight dynamic calls with type parameters

`updateDynmaic` is not considered in the tests because type parameters
on the update syntax are invalid.

Fixes #1002162
Revert wrong optimization in 1b83945. Always reset compilers when the
classpath has changed and is valid.

Previously we tried to only reset compilers on a transition from an invalid
to a valid class path. That’s wrong, since a change in a valid class path
still needs a reset (the compiler can’t refresh its symbol table any other
way). This lead to spurious errors.
Merge pull request #722 from dragos/issue/wrong-optimization

Revert wrong optimization in 1b83945. Always reset compilers on classpath change
Merge pull request #720 from sschaef/t1002162-dynamic-with-type-params

Highlight dynamic calls with type parameters
Merge pull request #686 from Luegg/extractionRefactorings

Integrate new extraction refactorings
Restore Run Selection In Interpreter functionality

This functionality was accidentally removed in ae7f8dc, it works now
again.

Instead of the old action API, the new handler API is now used. The
command id has changed as well - the `MigrationPreferenceInitializer`
takes care of it.

Fixes #1002164
Merge pull request #724 from sschaef/t1002164-run-selection

Restore Run Selection In Interpreter functionality
Finish cleanup of removed extraction refactorings

This cleanup should already have happened in 1eb07fe0dfcd, but some
entries were forgotten. This led to exceptions on startup of the IDE.
Merge pull request #728 from sschaef/cleanup-extraction-refactorings

Finish cleanup of removed extraction refactorings
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