Automatically select problem position on quick assist invocation

This feature is supported by JDT quick assists, but got lost after we
got our own implementation for quick assist.

Fixes #1002305
Support for drop to frame

Note that it can skip some frames as StepInto does this intentionally
Faster project loading in classpath computation

Loading projects is recursive and in case where:

A -> (depends on) B, A -> C, B -> D, C -> D

D is loaded twice.

In some big projects this causes a lot of wasted time when projects are
loaded dozens of times.

This commit introduces cache for already computed projects thet prevents
multiple loading of single projects.
Simplify HashSet usage for computed Classpaths

Since the LinkedHashSet prevents duplicates, processing classpaths in
topological order produces the same output, but would make the code more
complicated.

Fixes #1002311
Treat files as external dependencies.

Fixes #1002344
Adds back Scala notation in the outline labels

Partial revert of 21f15b9aa570ec6730b8fdd9176f2f616a5534f8

Fixes #1002339
Add cycle avoidance to classpath computation.

Fixes #1002179.
Merge pull request #866 from skyluc/issue/java-style-in-outline-2339

Adds back Scala notation in the outline labels
Merge pull request #853 from sschaef/t1002305-quick-assist-considers-problem-location

Automatically select problem position on quick assist invocation
Revert "replaces CheckBoxSettingWithDefault with a by-name parameter and additional constructor"

This reverts commit f6639c8a10bf388ee26556fc3fb810234b93b237.
Merge pull request #862 from uunicorn/t1002344-ext-bin-deps

Treat files as external dependencies.
Revert "Treat files as external dependencies."
Merge pull request #869 from scala-ide/revert-862-t1002344-ext-bin-deps

Revert "Treat files as external dependencies."
code completion: reduce relevance for non class fields and for java.*, scala.* packages

* Added CompletionOrderTests in CompletionTestSuite for testing completion proposals order
* Added two test related to #1002343
* Fixed relevance algorithm

With this changes order should be:
* Locals
* Fields
* Orders from old algorithm, but symbols from java package take -15 penalty and from scala package take -10 penalty

I decide to penalize java and scala package because it`s symbols (also fields and methods) are less `local` then symbols
from client code.

Fixes #1002343
Merge pull request #867 from caiiiycuk/scala-ide-code-completion-1002343

code completion: reduce relevance for non class fields and for java.*, scala.* packages
Merge pull request #864 from huitseeker/issue/1002335

Remove instance-creating implicit that shadowed BooleanSettingWithDefault
Merge pull request #848 from huitseeker/pr/840

Faster project loading in classpath computation
New File Wizard works with projects whose source dir is the root dir

It is not possible to create an instance of `IFolder` from a project path.
However, this behavior is required to create a file in a source dir that
is the same as a project dir. Therefore we switched from `IFolder` to
`IContainer` in the traits `NewFileWizard` and `FileCreator`.

Fixes #1002332
Merge pull request #871 from sschaef/t1002332-wizard-root-source-folders

New File Wizard works with projects whose source dir is the root dir
Merge pull request #859 from mpociecha/feature/drop-to-frame

Support for drop to frame