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