Changed the 'kind' of the Scala library container

See re #1000919 for explanation about container kind.
Added a regression test.

Fix #1000798
Fix #1000919
Fix #1001022
Improve test to fail if stuck

Don't wait indefinitely anymore if the launch doesn't terminate
Merge pull request #128 from skyluc/issue/missing-scala-library-in-runtime-classpath-1000919

Changed the 'kind' of the Scala library container
Pass the user's formatting options to the refactoring library codegen.

At the moment, only for Organize Imports, but more will be added in
the future.

Fixes #1001073
Refactoring: Created a ``PartAdapter``

* Created a ``PartAdapter`` (subclass of ``IPartListener``) that does "nothing".
   Basically, it's a null object. I named it ``PartAdapter`` because that's current
   practice in Java (and ``IPartListener`` is a Java interface, hence it makes
   sense to me to keep the Java naming convention here).

* Adapted ``ScalaPlugin`` and ``SemanticHighlightingPresenter`` to use the
   new adapter class.
Corrected ``MainClassVerifier`` (Re #1001096)

The logic in ``MainClassVerifier`` was partially broken. Indeed, the logic used
for checking that the main unit's package declaration matched its physical
location (rule 3. in the comment) was:

  1) plain wrong, and
  2) not neeeded because rule 2. was already taking care of it.

Therefore, all code related to rule 3. was removed, and the test provided with #1001096
has been added to the regression suite.

Re #1000541

Fix #1001096
No need to call setIsStructureKnown, as it is already done by the caller

In ``ScalaCompilationUnit#buildStructure``, there is no need to call
``setIsStructureKnown`` on the current compilation unit, as it's the
caller's responsability to do so.
``ScalaSelectionEngine`` uses now a ``ScalaCompilationUnit`` (instead of a
``ICompilationUnit``)

Both ``ScalaSelectionEngine`` constructor and the ``select`` method started
with casting the passed compilation unit to ``ScalaCompilationUnit``.  Beside
not being safe, this unsafe cast is actually not needed.
Better implementation of ``ScalaProject.sourceFolders``

No need to traverse the collection twice.
Minor refactoring in ``testsetup`` classes

* Removed ``ScalaUnit`` type alias and replaced usage of ``ScalaUnit`` with ``ScalaSourceFile``.
* Added explicit method's return type.
* Changed signature of ``SDTTestUtils.addFileToProject``: the passed ``content`` is now an ```Array[Byte]`` instead of a plain ``String``.

Note: This commit should be probably backported in 2.0.x branch
Created infrastructure for find references tests
Correctly find references of class fields

Fix #1000067
Index parameterless methods

Parameterless methods occur in the Scala AST as ``RefTree`` nodes.

Re #1000067
Improved find references of methods

When looking for references of method `xxx`, the method itself should not be
reported as a match. Indeed, find references is about finding usages of `xxx`,
not the declaration (and that is why a find declaration action exist).

Re #1000067
Correctly handle find references on field declarations

When Find References was performed on a val/var declaration, a popup dialog
used to be shown saying:

> The operation is unavailable on the current selection. Please select a valid
> Java element name.

The issue is in the compiler symbol found for the val/var declaration.
It turns out that the symbol's name can contain a trailing space, which
caused the equality test between the editor's current selection and the
symbol's name to always fail.

A test was also created to prove the issue is now corrected.

Re #1000773
Tested find references for both constructor and type

Created tests to check that:

* class' constructor references are correctly reported.
* class' type references are correctly reported (also for type bounds).

Fix #1000063
Correctly handle find references on class type

In ``ScalaMatchLocator.reportObjectReference`` only object references are reported, hence we are not interested in constructors. That's why we look at the element's parent if a ConstructorElement is returned for the passed position. The reason why in ``ssf.getElementAt`` can be a constructor has to be looked in the implementation of the ``ScalaStructureBuilder`` and ``ScalaCompilationUnit.getSourceElementAt``.

Fix #1001084
Tested find references for companion object members.
Added FindReferenceTests to regression suite
Added comment in ``ScalaStructureBuilder``