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``
Integrated code review comments pull #125
Added FIXME note in FindReferencesTests
Merge pull request #131 from dotta/issue/cannot-run-scala-app-1001096

Corrected ``MainClassVerifier`` (Re #1001096)