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
No need to put the sbt version number in the bundle name
Lifed up version for Sbt bundles in variable ${sbt.osgi.version}
No reason for putting the manifest in the ${basedir}

The one single reason for doing it is to allow to import in the workspace the
`sbt.full.library` project, so that it can be correctly consumed by the
dependent projects (e.g., the `core project). However, given we practically
never had to do so in the past 6 months, it feels reasonable to remove the
flexiblity in the name of a cleaner build. In case you will need to import he
`sbt.full.library` project in Eclipse at any point, just create the required
.classpath and .project, and copy/paste in the project's root the META-INF
folder generated by the build (look in the target/ folder). Make  sure to do
the same for the `sbt.compiler.interface` project.
Deleted unneeded import-package clauses in toolchain MANIFESTs

The maven build does no longer spits out warnings for unused package imports in MANIFESTs.
Adding organisation information in the POM to reduce duplication

In fact, the default value for Bundle-Vendor is ${pom.organization.name}
Merge pull request #529 from dotta/issue/launch-config-does-not-find-main-in-jar-1001878

Issue/launch config does not find main in jar 1001878