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
Support for showing variable values in hovers when in suspended debug
mode.

The hover shows values when hovering over local variables & class
fields. Care has been taken for the hover to never show wrong values
upon hover (the automated tests test this), although, I cannot rule-out
possible bugs.

Some implementation details:

 * The sdt.core project now exposes a new extension point
   (scalaHoverDebugOverride) that allows its text hover to be overriden
   by a plugin. The sdt.debug project provides an extension for this
   extension point.

 * The main logic of this commit is implemented in the
   StackFrameVariableOfTreeFinder.find() method. This method takes an
   ast node (compiler.Tree) as input and (if possible) returns the
   IVariable from the stack frame that corresponds to the given ast
   node.

 * Once an IVariable is sucessfully found, it is fed to the
   presentation component that is used internally by the jdt, which
   presents complex objects in a tree with collapsible sub-trees.
   Whenever an IVariable is not found, the existing implementation of
   text hover (the one before this commit) is used.

 * Some hacks are employed in the implementation (e.g. looking for
   stack-frame variables that are named '$this' or '$outer').

 * The ScalaDebugger class now also keeps track of the currently
   selected stack frame.

 * A test case exercises the StackFrameVariableOfTreeFinder.find()
   function.
Merge pull request #729 from skyluc/wip/pr/718

Scala Installations support
Merge pull request #716 from pmellati/variable-values-in-tooltips-in-debug-1001732

Showing variable values in hovers when in suspended debug mode
Adds a Directory-based Scala Installation subclass
Hooks in Addition/Removal for Scala Installations

Limits custom versions to >= 2.10
Adds a ScalaInstallation serializer helper

Hooked in Scala Installation Serialization
Deals with deserializations, including that of bundles