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
(cherry picked from commit 492a546df849aa75d316bb8c95ee9c8b981f998d)

Conflicts:
	org.scala-ide.sdt.core/src/scala/tools/eclipse/javaelements/ScalaClassFileProvider.scala
Add synchronisation around map `getOrElse`.

Needed for proper visibility, in case this code
is called on different threads.
Merge pull request #611 from dragos/release/scala-ide-3.0.x-juno

Backport caching jars