Mark output folders as "Derived".

Derived folders won't appear in "Open Resource", polluting
names with classfiles.

Fixes #1000260 (which regressed at some point in time).
Merge pull request #525 from huitseeker/issue/clean-up-tokenize-10018166

cleaning up test after implementation of tokenize(str:String, ...)
ReplConsoleView multiline input + refactoring

Multiline input field in the ReplConsoleView. The UI elements have also been factored out into a trait. To evaluate code/change history, CTRL must be held as well.

CommandField keyboard events can now be overridden, too.
Adds missing super.dispose call
Cosmetics

Relax needlessly concrete members in Intermediate trait.
Merge pull request #515 from huitseeker/pr/489

ReplConsoleView multiline input + refactoring
Merge pull request #518 from dragos/issue/fix-derived-output-folders-1000260

Mark output folders as "Derived".
Revert "Sync 'isDefined' in presentation compiler cache."

This reverts commit 3608a8191c91062aa608beb77da930cdc3c8cda7.

We need to revert this because of a possible deadlock at startup between the PC
and the classpath resolution. More information on the related ticket (#1001875).

backport to release/scala-ide-3.0.x

Review by @dragos

Re #1001880
Fixes #1001875
Merge pull request #528 from dotta/issue/rollback-additional-pc-synchronization-because-of-deadlock-at-startup-1001875

Revert "Sync 'isDefined' in presentation compiler cache."
Updates continuations option tests for 2.11

In Scala 2.11, the continuation plugin is no more enabled by default when
available.
Two main changes:
- forces enable the continuation plugin when running the tests on Scala 2.11
- modifies the tests to use the project specific preferences, to avoid side effects
of the configuration changes needed for the tests.
Resolves a compilation error reported with 2.11

In 2.11 octal escape literals are now unsupported

For more information about the change see SI-7292
Merge pull request #527 from sschaef/t-resolve-2.11-error

Resolves a compilation error reported with 2.11
Merge pull request #531 from skyluc/issue/continuations-not-enabled-on-211

Updates continuations option tests for 2.11
Moved contributing section from README to CONTRIBUTING

This is the preferred standard for git repository hosted on GitHub (see
https://github.com/blog/1184-contributing-guidelines)
Merge pull request #532 from dotta/wip/split-readme-contributing

Moved contributing section from README to CONTRIBUTING
Retry `HyperlinkDetectorTests.test1000656` flaky test

Re #1001880
Removed unused `mainContent` from `MainClassVerifierTest`
Fixed one-line wrong indentation in `ScalaLaunchDelegate`
Dumbed down `MainClassVerifier` to only check class vs module mismatch

Experience taught us that `MainClassVerifier` is trying to be too smart, and
often prevents user from launching perfectly fine Scala launch configurations.
The last manifestation was that it would prevent users from launching a main if
defined in a JAR.

The matter was discussed with the team and the agreed descision is to reduce
the scope of the `MainClassVerifier` to only prevent users from:

* launching a Scala application if the project contains build errors, and
* provide feedback when trying to launch a Scala `class`, instead of a `object`

Consequently, we no longer prevent users from launching a Scala application
that is incorrectly configured (i.e., the classfile doesn't exist). The
consequence is that a `NoClassFoundException` will be reported to the user in
this case, which actually matches the behavior in the Eclipse Java support.

Let's dive into the details and describe what are the extent of the changes
carried out by this commit:

* Check for build errors is performed only if the a classfile for the
  `mainTypeName` provided in the Run config can't be found. Hence, if the
  classfile exist, this allows you to run your application even if there are
  errors in the project.

* `ScalaLaunchDelegate.finalLaunchCheck` does not longer call `super`. This is
  to avoid the Java Eclipse prompt is displayed. Instead, the `UIReporter` is
  called, and I've improved it to be a standard platform dialog. The improved
  dialog also allows users to by-pass the check.

* This patch consciously breaks source compatibility (because I removed the
  `MainClassVerifier` constructor, and deleted the `ErrorReporter` trait).
  I could re-introduce them and use deprecation, but it doesn't seem worth the
  effort (and none has complained about this change during the review process).

backport to release/scala-ide-3.0.x

Re #1001882
Fixes #1001878
Updated Tycho version to be compatible with both Maven 3.0.x and 3.1.x
Added a source bundle for the sbt library.

This commit allows debugging, hyperlinking, etc. towards
sbt sources. Useful when working on the Sbt builder.

* create a source bundle for the sbt library. I needed to
  inline the contents of sbt jars in order to get Eclipse
  to correctly associate sources with classfiles

* created a new compiler.interface bundle, only for the
  compiler interface, together with the matching
  `compiler.interface.sources` bundle. Sbt requires this to
  be a separate jar and there was no way to build a single sbt
  bundle with only some of the dependencies inlined.

A similar approach could be used for the Scala library/compiler
bundles, but we should investigate the possibility of having the
Scala team publish source bundles too (Re #1001889).

(this was originally a commit from @dragos, which I have adapted
based on the comments in https://github.com/scala-ide/scala-ide/pull/482)

Fixes #1001888