Handle src/bin folders that are the same as project root folders

It is possible to create source and binary folders that are the same as
the project root folder. The easiest way to do this is to use the "Use
project folder as root folder for sources and class files" option in the
new Scala project wizard.

Scala IDE is unable so far to handle these folders because the Eclipse
API itself seems to be unable to handle these folders. The common
operation to retrieve an IFolder is

project.getFolder(path)

which throws an exception in case `path` is the same as the path of
`project`.

The problem is fixed by not calling `getFolder` inside of `ScalaProject`
but by reusing an existing reference to the `IContainer` that already
references the correct location on the filesystem.

Fixes #1002146
scaliform default preferences changed

scaliform.DoubleIndentClassDeclaration preference changed from "false" to "true" according to Scala Style Guide.
https://github.com/mdr/scalariform#doubleindentclassdeclaration

Fixes #1002321
Merge pull request #858 from sschaef/t1002146-handle-root-source-folders

Handle src/bin folders that are the same as project root folders
Merge pull request #860 from caiiiycuk/scala-ide-style-1002321

scaliform default preferences changed
Wraps the Java spelling API call

As it will return 'null', if there are no spelling mistake to fix.
Avoid logging twice the same stack trace

SafeRunner already log the stack trace. Tweaked the error message to point
to this stack trace.
Merge pull request #863 from skyluc/issue/class-cast-exception-2317

Quick fix exceptions
Expression evaluator for Scala IDE

Implementation of expression evaluator and conditional breakpoints based
on JDI.

Allows user to evaluate any Scala expression in context of some breakpoint
during debug. Expression is transformed in multiple phases and evaluated
using calls to remote, debuged machine and result is fetched back to user.

Because of complexity of Scala language, implementation details of JVM
platform and necessity for manual evaluation not all Scala features are
supported yet.

Co-authored-by:
 - Pawel Batko <pawel.batko@gmail.com> (@pbatko)
 - Piotr Kukielka <piotr.kukielka@gmail.com> (@pkukielka)
 - Jerzy Muller <sidus.gemini@gmail.com> (@Kwestor)
 - Michal Pociecha <michal.pociecha@gmail.com> (@mpociecha)
 - Krzysztof Romanowski <romanowski.kr@gmail.com> (@romanowski)
Ignoring tests that hangs on Jenkins
Tests for java statis methods
Support for hashCode
Correct typos and wording in the expression evaluator's comments and scaladocs
Add support for Java static and normal fields and methods

Also add tests for creating instances of Java nested classes.
Correct some typos.

Right now doesn't work:
- complex operations using Java fields which in Scala are AnyVals (stub generations doesn't support it)
- assignment to Java fields - fail due to java.lang.UnsupportedOperationException: Position.end on NoPositionfrom scala.reflect.internal.util.Position.fail from typer during the compilation using Toolbox
Create separate test projects for unrelated test cases

This shortened a bit the execution time of a test suite as we avoid the unnecessary compilation of many unrelated classes.
Fix problems with invalid frames after evaluating an expression

Due to this problem e.g. variables view worked incorrectly after evaluating an expression
Removal of stubs and better primitive handling

Stubs are no longer generated for each type used in evaluated expression.

Primitive proxies are now generated in more simple manner, using
`proxy.__value[TYPE]` and all operations on primitives are handled via
ToolBox.
Extracting generics from source

Generic types are now extracted from source files if possible.

Also, some clean up in `TypeContext`.
Fixes after internal review