Correctly resolve overloaded Java methods in hyperlinking

The Scala selection engine didn't build the correct signature
for Java methods taking array parameters. It turns out that
the special-handling `mapParamType` wasn't needed, and the
existing `mapType` method in `ScalaJavaMapper` was already
working correctly.

Fixed #1000421(cherry picked from commit e8c3cdfe9381fba9ff01661df2fe178c2bb9e2c3)

Conflicts:
	org.scala-ide.sdt.core.tests/src/scala/tools/eclipse/hyperlink/HyperlinkDetectorTests.scala
	org.scala-ide.sdt.core/src/scala/tools/eclipse/javaelements/ScalaJavaMapper.scala
Initialize List and Nil so the XML parser does not introduce race conditions

Fixed #1001708. No test since no reproducible test case.
(cherry picked from commit a3fd67431b58fcfd348d143fc460c0fda33ea025)
Correctly handle boundary conditions in the ScalaWordFinder

I reorganized and simplified the logic in the ScalaWordFinder,
and added a few tests. It seems to fix at least the exception
and a couple of other boundary conditions (revealed by pressing
F3 at the very beginning or very end of an identifier, or even
an identifier between `{}`).

Fixed #1001526
(cherry picked from commit 5fe4f4fabad2af4e48fe5324390ffddcb7646fe7)

Conflicts:
	org.scala-ide.sdt.core/src/scala/tools/eclipse/ScalaWordFinder.scala
Merge pull request #443 from dragos/backport/prs-429-435-442

[backport] PRs 429, 435, 442
Merge remote-tracking branch 'upstream/release/scala-ide-3.0.x' into release/scala-ide-3.0.x-juno