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
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
Move `TestUitls` 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.