Add a type printer for Scala compiler types.

This code follows closely what toString does in the Scala compiler, except
that it won’t print fully-qualified names. Most of the times, FQN are a nuisance
inside the IDE: They add clutter and little information, and when used from
quick-fix (add explicit type or implement abstract member), they need to be
manually removed.
Switch the quick fix to use the new printer (away with fully-qualified names!)
Switch the abstract member proposal to the new printer.
Hook completions to new printer.
Hook hovers to new printer
Make method name smaller in scaladoc hovers.
Fix formatting (unclosed markup), now that we have Scala doc.
Move `getOption` out of `asyncExec`, since this leads to a deadlock.

The deadlock is broken by a timeout after 10 seconds, but the problem remains,
and is especially annoying when waiting for a quick fix.
Cleaned up Scala hovers and moved editor classes in the API packages.
Add extra space between parameters.
Merge pull request #712 from dragos/improvement/type-printer

Show simple names instead of fully qualified names in quick fixes
Clear doc comments when fishing reloads.

Added one more entry to the diagnostic dialog (size of class loader cache).
Merge pull request #821 from dragos/issue/clear-doc-comments

Clear doc comments when fishing reloads.
Make sure we are looking at the current contents when computing hovers.
Merge pull request #816 from dragos/api/scala-hover

Scala Hover API and fixes
Cleanup Hyperlink creation.

- removed HyperlinkFactory and friends
- add `mkHyperlink` to `IScalaPresentationCompiler` (similar to completion proposals)
- move implementation class to `core.internal.hyperlink`
Moved classes to internal package and remove useless `Composite` class.
Make the hyperlink detector automatically translate regions.
Add factories for hyperlink detectors.
Add a way to configure the label, and a default implementation.

This was needed for the Play route editor.