Add functionality to auto enable new wizard elements

Fixes #1002191
Trigger auto activation of new wizard entries only once
Add constants for Scala file creators to `ScalaPlugin`
Apply reviewer comments

- Move `RichWorkbench` to `EclipseUtils`
- Remove early info logging, because it is not very useful and maybe
  even problematic due to possible deadlocks with stdout redirecting
Merge pull request #755 from sschaef/t1002191-enable-new-wizard-elements

T1002191 enable new wizard elements
Change ICodeAssist to ITypeRoot in ScalaSourceViewerConfiguration

There is no advantage in working directly with ICodeAssist, therefore
this reference is removed.
Move `ScalaHover` to subpackage
Add Scala hover font configuration

This configuration is shown in

    Preferences > General > Appearance > Colors and Fonts
Add HTML aware hover

This adds a hover that can show HTML and therefore arbitrary formatted
text. It reads the config values an user specifies in the preferences and
renders the HTML accordingly. Further configuration can be done with a
new CSS file which is read by this hover.

Fixes #1001667
Add HTML creator to "show selection as type" component
Add HTML support to annotation hover
Improve style representation of error messages in annotation hovers

Due to stylistic limitations of the hover popup, multi line error
messages need to be trimmed to mostly single lines.
Combine several region util methods in one `RegionUtils` object

`Region` is renamed to `RegionUtils`. Furthermore, there is one small
functional change. `AbstractSymbolClassifierTest` contained a method
`toRangePosition` whose end is offset+length-1 whereas the new
`toRangePos` implementation (that is used everywhere else) provides the
end as offset+length, which also seems to be the correct one.
Show errors in hovers

This shows errors reported by the presentation compiler in the hover.

Fixes #1001897
Show builder error messages in hover

Error messages from the typechecker and from the builder need to be
handled differently. The error messages from the builder are not
available as long as the user doesn't build the project, whereas
the presentation compiler can show error messages immediately.

Therefore, error messages from the builder are more expensive to show.
We first have to check if the PC finds error messages and only if it
doesn't return anything, we should continue with checking if the builder
reported anything.

The error messages from the builder are available through markers.
Because they need at least be provided on a single line (because the
problems view can't handle multi line strings) the error message is
saved two times - a single line message for the problems view and the
full error massage for the hover.

Fixes #1001534
Compute additional width for browser based hovers

This is necessary because CSS attributes and some fonts are not
correctly considered by the alreaty existing algorithm that computes
the hover width.
Add scala-hover.css to build.properties
Add Markdown formatting possibility to hovers

This allows to specify some preformatting for strings that should be
shown in hovers. For example a string can be surrounded by backticks to
tell the hover that such a string should be shown as a code block.
Remove unnecessary s in strings for implicit conversions
Add return type to implicit conversions

Fixes #1001567