Scala Hover API and fixes

Based on #812.

- fixed performance of hovers (scaladoc build lazily, and after retrieving errors)
- fixed deadlock in quickfixes (hidden by timeout)
- moved more types to public editor API.
Making the `getJavaElement` call faster is indeed the whole reason this was taking a `javaProject` as an argument, and it's true this call is unneeded for Scala code (we could pass `null` there in fact). But I'm wary about the effect removing this line for hovers on java term