Update dependencies versions for Scala 2.11.0-M7
(cherry picked from commit 4fd71a541d25bc648a25bfbe1f1e9254bdf41716)
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
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`.
Adds decorator extension point to change icons for Scala files

Scala files which are not on the classpath of a project get displayed
with an icon that is made for Java files. This commit replaces the Java
icon with a different one by using a decorator. Only the large icon is
replaced - smaller ones in the corners are not affected.

The decorator is enabled by default and can be disabled in
"Preferences/General/Appearance/Label Decorations/Scala Decorations"

This change only affects Scala files that are not on the classpath
because internally they are represented with a different object
compared to all other Scala files.

Fixes #1001975
Merge pull request #616 from sschaef/t1001975-enable-icon-for-files-not-on-classpath

Adds decorator extension point to change icons for Scala files
Refactoring in `ScalaClasspathContainers`

Pushed up `libraryEntries` method so that it can be used by the two subclasses
of `ScalaClasspathContainerInitializer`