Use the configured JDK and Scala library when building.

Make sure the Sbt builder uses the configured JDK and
Scala library. Make sure Sbt does not infer some default
libraries for `-bootclasspath`, or the JDK used for running
Eclipse.

Fixed #1001387
(cherry picked from commit c135f28839a6bffe33c83de307c1f9f9293d9515)

Conflicts:
	org.scala-ide.sdt.core.tests/src/scala/tools/eclipse/sbtbuilder/SbtBuilderTest.scala
	org.scala-ide.sdt.core/src/scala/tools/eclipse/ScalaProject.scala
Don't consider `$` as part of Scala identifiers.

'$' are implementation specific, but can appear in legitimate programs as escape
sequences in interpolated strings. Hyperlinking should only consider the identifier
without '$' signs.

Fixed #1001408(cherry picked from commit a2ab4e73bb435d1ab4451a6770e01daec708095d)
Synchronize access to `Names` in the presentation compiler.

This may lead to subtle errors, like the mysterious
assertion error in pickler.

Refs #1001607, #1001606
(cherry picked from commit 2bf95d79bb7002091cada625bf3c75dda7e313b6)

Conflicts:
	org.scala-ide.sdt.core/src/scala/tools/eclipse/javaelements/ScalaStructureBuilder.scala
Merge pull request #438 from dragos/backport/prs-414-417-422

[Backport] prs 414 417 422