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
Switch to using ScalaInstallation everywhere
Create preference page
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
lints the Scala Installation switch
Implements updateable, serialized Scala lib/compiler containers

Plugs in a list for Add Scala Library/Compiler
Fixes #1001777
Implements update of Scala Library Container based on SourceLevel
modularize ScalaInstallationUIProviders
Initialize classpath container to the desired source level even if no available save

Better portability of Scala projects
Side-effect: modularizing container computation.
Tests sourcelevel & classpath containers.
Don't add a library container to a project that does not have one.

Make classpath container serialization work per-path.