Pull loop invariant code outside of the loop

askOption calls are expensive, and there’s no need to recompute
symbol-specific parts inside the loop over methods. This will improve
performance in UI code, like completions looking for parameter names.
Merge pull request #707 from dragos/issue/performance-improvement-javamapper

Pull loop invariant code outside of the loop
Simplify UseProjectSettings
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.
Prevent NoSuchElementException in Extract trait.

Fixes #1001967
Fix race condition due to call of `Tree.symbol`

Calling `askOption` directly in the traverser is extremely expensive,
therefore it should happen as less as possible. Because the check if
the symbol exists is only necessary for dynamic types, which are not
used very often, it is only done when no other information in the tree
could be found.

Fixes #1002132
Merge pull request #711 from sschaef/t1002132-race-condition-due-to-symbol-call

Fix race condition due to call of `Tree.symbol`
Update UI after completion is applied and no linked mode is created

After the completion is applied to the underlying document, the editor
needs to be updated. Because the cursor position is independent from
the document content it needs to be updated separately, which was
forgotten in the case that no linked mode is created.

Fixes #1002151
Remove dead code in `CompletionProposal`
Merge pull request #717 from sschaef/t1002151-wrong-cursor-position-after-completion

T1002151 wrong cursor position after completion
Merge pull request #714 from huitseeker/issue/1001967

Prevent NoSuchElementException in Extract trait.
Simplifies AdditionalParametersWidget
Merge pull request #713 from huitseeker/issue/CustomCodeRemoval

Issue/custom code removal
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