Add URL hyperlink detector

The URL hyperlink detector shows hyperlinks for URLs in comments
as well as strings.

Because the detector is functionality already built into the
Eclipse API, no tests are created.

Fix #1001266
Merge pull request #264 from sschaef/issue/show-url-hyperlinks

Add URL hyperlink detector
Refactoring of ScaladocAutoEditStrategyTest

The previous test class was difficult to work with because input
and expected output must be handled manually. The new test class
can compare input and output directly and is also able to check
the correct cursor position.
``sbt.precompiled.version`` has to match ``scala.version``

It is really important that when we build the IDE, the sbt artifacts are
compiled against the exact same Scala compiler that is shipped in the IDE. To
this end, I've updated the value of ``sbt.precompiled.version`` to always match
the ``scala.version`` one. This is needed because while the Scala library is
ensured to be forward binary compatible across minor releases, no such
guarantee is provided for the Scala compiler (and the Sbt compiler-interface,
which we use in the IDE, does need to be linked against the Scala compiler).

As part of this commit, I've also made another small change to the property
``scala.major.minor.version`` and renamed it ``scala.era.major.version``, as
this what this property actually contains.
Merge pull request #265 from dotta/issue/sbt-artifacts

``sbt.precompiled.version`` has to match ``scala.version``
Refactorings in AutoCloseBracketStrategy

Since the old test suite is error prone, a new one is created. The new
test suite is able to compare full input and output and not only the change
events.

Furthermore AutoCloseBracketStrategy is renamed in BracketAutoEditStrategy
because the existing auto edit actions do not only close brackets.
Fix #1001394 Ignore source classpath entries that don't exist physically in the workspace.
m2e routinely adds optional CPEs for src/main/java, src/test/java even when
the directories are missing. SBT builder is not aware that they are optional
and aborts compilation.
Merge pull request #266 from sschaef/issue/auto-edit-strategy

Refactorings in AutoCloseBracketStrategy
Merge pull request #263 from sschaef/issue/comment-auto-indent

Refactoring of ScaladocAutoEditStrategyTest
Correct auto indent behavior in comments

The old behavior did not correctly indent text inside of comments
whereas the comments themselves are indented correctly. This commit
corrects the behavior by indent a new line to the same depth as the
previous line.

Another feature introduced is, that if the enter key is pressed while
the cursor is adjusted in an line not starting with a *, a completely
empty line is inserted instead of auto inserting a * sign at the begin
of the related line.

Furthermore, ScaladocAutoEditStrategy is renamed to
CommentAutoEditStrategy because this component does its auto edits not
only to Scaladoc but also to multi-line comments.
Fixes #1001326

This commit fixes ticket #1001326. Solved the problem by
overriding 'parseTree(source: SourceFile)' in
ScalaPresentationCompiler with an implementation that just
parses the source every time without trying to memorize
anything. Added tests that checked that

  1. You get a new parse tree every time you ask for one
  2. A parse tree should never contain any symbols or types [1]
  3. If you ask for a parse tree and then open the file it shouldn't
     change the parse tree you originally asked for, i.e. property
     2 still holds.

[1] There is an exception to this though. Some of the nodes that
    the compiler generates will actually contain symbols. I've
    chosen to just ignore these special cases for now.
Simplified ensureFolderExists function according to Iulian's suggestion.
2.9.x compatibility & refinement of symbol check

Had to modify the code a bit to make it compatible
with Scala 2.9.x. Instead of using dependent types
in a method signature I had to wrap the types in a
trait. Instead of using `Tree.forAll` I had to use
`Tree.exists` and modify the body of the predicate
accordingly.

I refined the symbol check so it doesn't match
against `Ident(nme.scala_)` but instead simply ignores
symbols that point to `definitions.ScalaPackage` This
is because `Ident(nme.scala_)` would ignore more nodes
than intended, i.e. `{ val scala = "awesome"; scala }`
would be ignored as well.
Merge pull request #262 from rkrzewski/master

Ignore non-existent source classpath entries
Merge pull request #269 from mads379/parsetree-1001326

Fixes #1001326
Removed old FIXMEs

The problem has been fixed by pr #251
Fix #1001310
Merge pull request #268 from sschaef/issue/correct-comment-indent

Correct auto indent behavior in comments
Merge pull request #270 from skyluc/issue/cleanup-todos-1001310

Removed old FIXMEs