Merge pull request #98 from scala-ide/feature/surround-selection-1001010

Adriaan owes me a beer: editor improvements. 
Added key binding for "Open Implicit" action (ALT+F3)

* Added key binding for "Open Implicit" action (ALT+F3).

* Added "Open Implicit" menu item to the top bar Navigation menu.

* Added "Open Implicit" menu item in the contextual menu (displayed after righ clicking on the editor).

* Clean-up of hyperlinks detection strategies, which are now splitted
into ``DeclarationHyperlinkDetector`` and ``ImplicitHyperlinkDetector``.

Integrated Iulian's suggestions from pull #97

Improvements related to ticket #1001002
Updated pom to use the dev AJDT streaming

The (in-)famous ``ConcurrentModificationException`` that often occurs
when running our build on the Continuos Integration server may be fixed
by moving to the SNAPSHOT version of AJDT.

This was suggested by Andrew Eisenberg here:

	https://bugs.eclipse.org/bugs/show_bug.cgi?id=338033

Test #1000941

For the Juno build we should use the following update site

	http://download.eclipse.org/tools/ajdt/42/dev/update/
Added IIndexedValue support for arrays in debugger

Extending the IIndexedValue interface allow to get the free support
for large containers.
If needed, the elements of arrays are grouped by 100, 10000, 1000000, ...

Fix #1001009
Merge pull request #99 from scala-ide/issue/iindex-value-for-arrays-1001009

Added IIndexedValue support for arrays in debugger
Added test for ticket #1001014

The test is currently ignored, it should be enabled once #1001014 is fixed.
Move Semantic highlighting to a background job.

Fixed #1001016.
Semantic highlighting jobs are now exclusive: a new semantic highlighting job will cancel the old ones before
being scheduled itself. This ensures proper ordering.
Merge pull request #102 from dotta/issue/no-completion-on-case-class-members-1001014

Added test for ticket #1001014
Fixed Hyperlinking in classfiles regression

CMD+hover on classfiles wasn't working anymore after the recent addition of the
``Hyperlink to Implicit`` functionality.

The reason was that ``Hyperklink to Implicit`` currently needs to go through
the editor's annotation model to know if an implicit conversion is getting
applied. Apparently, the ``IEditorInput`` of a ``ScalaClassFile`` (which is an
``InternalClassFileEditorInput``) does not have an ``IAnnotationModel`` attached
to it, and that caused the ``ImplicitHyperlinkDetector`` to throw an exception,
which was the reason why CMD+hover was no longer working properly.

The fix was simple enough. In ``EditorUtils.getAnnotationsAtOffset`` returns now
an empty ``Iterator`` if the editor's annotation model is ``null``.
Corrected implementation of ``HyperlinkOpenAction#isEnabled``

The implementation of ``HyperlinkOpenAction#isEnabled`` introduced in commit
457bd3163c0b8ad28d01cf22ae619b6483c65313 is broken, and the context menu does
not always show the menu item ``Open Declaration`` when right clicking on a
binding.

Fixed by passing the ``editor`` instead of the ``editor.getViewer``.
Implemented enable/disable of "Open Implicit" menu item
Added FIXME note on ``EditorUtils``

``scala.tools.eclipse.refactoring.EditorHelpers`` and
``scala.tools.eclipse.util.EditorUtils`` should be merged.
Refactoring ``HyperlinkOpenAction``

After a discussing with @skyluc, I've extracted a ``OpenHyperlinkStrategy``
trait that contains the commong logic used by both ``HyperlinkOpenAction`` and
``OpenImplicitCommand``.
Keep "Open Implicit" and "Open Declaration" menu items always enabled

Unfortunately, it looks like there is a bug in Eclipse that prevents menu items
to be correctly refreshed in the top menu bar, inside the ``Navigation`` menu.

Hence, to avoid to confuse the user, the menu items are now always enabled.
Merge pull request #101 from dotta/master

Fixed Hyperlinking regression in classfiles 
Use the configured JDK when instantiating the presentation compiler. 

The Scala compiler adds the currently running JDK to the class path, taking precedence over the JDK 
configured in the build path. This commit fixed #1000820, and generalizes the scheme used by the Sbt
builder.
Merge pull request #106 from dragos/issue/pc-jdk-classpath-1000820

Use the configured JDK when instantiating the presentation compiler. 
Make `stopBuildOnError` on by default.
Small refactoring in the hyperlinking code:

- removed the abstract classes for Implicit and Declaration hyperlink factories, and 
created a simpler factory method that sets the `text` of the hyperlink
- added documentation on `HyperlinkFactory`
- moved some object declarations so that they're reused between method calls