Revert sbt.full.library maven config logic

The base logic is as it was before the maven refactoring.
It uses the base folder as a work folder.
The other parts of the clean up remain.

Fix #1001086
Better encapsulation of ``ScalaProject`` members

* Reduced visibility of methods
* Removed unused member ``scalaProject``
Made ``Run As Scala Application`` more robust

Display a dialog when trying to run a scala application if:

* The project cannot be built (if that is the case, no binary is produced, hence the application cannot be run).
* The package name doesn't match the source's physical location (this is a known limitation Re #1000541)
* The main type name provided in the Launch Configuration does not point to an existing source.

Fixed #1000911
Merge pull request #124 from dotta/issue/make-run-as-scala-app-more-robust-1000911

Issue/make run as scala app more robust 1000911
Merge pull request #126 from skyluc/issue/half-broken-sbt-lib-config-1001086

Revert sbt.full.library maven config logic
Merge pull request #127 from misto/issue/rename-broken-1001059

More reliable refactoring in multi-file situations.
Fixed failing test.
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
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
Merge pull request #131 from dotta/issue/cannot-run-scala-app-1001096

Corrected ``MainClassVerifier`` (Re #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