Make pointcut pick up subclasses of ScalaJavaBuilder.

This fixes a problem at a customer (cleaning output folders, leading to
empty output folders after successful builds), but I could not reproduce
locally. Confirmed it works for said customer, so rolling back to main
project.

Fixed #1001995

(cherry picked from commit bcd85b3a3af3b00b3cb195b2561c1c880feac0b9)
Correct completion overwrite behavior when nothing is overwritten

This fixes the problem only partially because it is based on a
heuristic, but it should fix the most important cases.

The logic is overall very complex, nevertheless no tests are provided
because there exists no test suite that can test the contents of a
document after a completion happened and writing such a test suite is
not trivial.

Fixes #1001791
remove wildcard eol=lf from gitattributes
Catch up with Scala Library Modularization.

Split the dependencies along the scala-2.10.x and scala-2.11.x profiles.
The goal is to evolve the 2.11 module structure to get a leaner set of
dependencies on Scala Core, with a separate Scala Modules container.

Support the 2.11 swing/continuations modules:
Rename `continuations.jar` to `scala-continuations-plugin.jar`.
In 2.10 this was called `continuations.jar`,
in 2.11 it's `scala-continuations-plugin_2.11.jar`, and the library part
is distributed separately, so add that to the Scala container.

TODO: add scala-xml and scala-parser-combinators to the scala container and to the repl classpath

(These dependencies should move to the Scala Modules container eventually.)

Fix the outputDirectory-es of scala-(refactoring|swing)

Plugin goes to lib/. Long live XML copy-paste reuse.
Merge pull request #604 from adriaanm/modularize

Catch up with Scala Library Modularization.
Don't skip trees with transparent positions when looking for references

Trees with a transparent position may contain trees with range
positions, hence we should make sure to:

1) Traverse tree with a transparent position, and
2) Only call `report` on tree that have an opaque range position.

This is a bug that was made apparent by the changes needed to fix the
Scala compiler ticket SI-4287.
Merge pull request #606 from dotta/issue/si-4287

Don't skip trees with transparent positions when looking for references
Merge pull request #600 from dragos/issue/pointcut-allow-subclasses-1001995

Make pointcut pick up subclasses of ScalaJavaBuilder.
Merge pull request #603 from sschaef/t1001791-correct-completion-overwrite

Correct completion overwrite behavior when nothing is overwritten
Ignored completion test causing spurious failures on 2.11 build

Re #1001973
Merge pull request #609 from dotta/issue/spurious-failure-on-list-completion

Ignored completion test causing spurious failures on 2.11 build
Workaround for race condition during source indexing

Initialize the `TupleClass` symbol to prevent the presentation compiler
assertion that checks thread confinement to fail on parse trees, as
demonstrated by Re #1001986. This is a workaround for scalac ticket SI-8030, as
we need the fix to be readily available on Scala 2.10 as well.

Calling `initialize` is sufficient according to @retronym, as highlighted in
this comment https://github.com/scala/scala/pull/3262/files#r8361292
Cache info about jar files that might contain Scala classifies.

Deciding wether a class file is produced by Scala is expensive (it entails
parsing the binary). Instead, we cache the information per package fragment,
assuming that a jar contains Scala-only or Java-only classifies. For
mixed Java/Scala jars, behaviour depends on the first classfile that is
accessed. It might lead to using the Java icon/classfile editor for
Scala classfiles.

A more fine-grained strategy could be used (caching per package, instead
of jar file), but this patch has been running at a customer and solved
the issue, so we go for the tried-solution.

Fixes #1001999
Merge pull request #608 from dotta/issue/workaround-for-1001986-take2

Workaround for race condition during source indexing
Don't add local suffix (one space character) for field completions

Correctly deal with private local fields backing up a val/var. The
presentation compiler always returns the `val` backing up a val/var, for
reasons of uniformity (getters won't work everywhere, because local variables
or private fields don't have a getter). However, the
proper way to look at such fields is to look for their getter (who
has the correct name, accessibility flags, etc).

Fixes #1001973
Merge pull request #605 from dragos/issue/caching-jar-describer-info

Cache info about jar files that might contain Scala classifies.
Add synchronisation around map `getOrElse`.

Needed for proper visibility, in case this code
is called on different threads.
(cherry picked from commit 6181d7f57da6c28cc6f6ef0df873a2f7a960ba73)
Merge pull request #610 from dragos/issue/flaky-completion-relevance-test-1001973

Don't add local suffix (one space character) for field completions
Merge pull request #612 from dragos/issue/add-sync-caching-jars

Add synchronisation around map `getOrElse`.