Redesign of quick assists

This is a complete redesign of the quick assists feature. At the moment we still use the extension point provided by JDT. This one worked fine so far, but it broke in my save action PR (#761). A new document provider needs to be provided but the quick assist feature of JDT works only with the document provider that is provided by JDT.

Key points:
- This PR should only do refactorings and not provide any functional changes (well, except from one bug fix).
- A new extension point `quickAssists` and a new package `org.scalaide.core.quickassist` is introduced.
- There is no distinction between quick assists and quick fixes anymore. I decided to only keep the word "quick assist" because both types are the same conceptually. The only difference in theory was that quick fixes represent assists to compiler errors whereas quick assists represent all other assists. In practice there was no advantage is making such a distinction, therefore the term "quick fix" is no longer used.
- The existing `ScalaQuickFixProcessor` and `ScalaQuickAssistProcessor` were replaced by a lot of little quick assists, which are configured through the `quickAssists` extension point.
- This PR is necessary in order to get #761 merged.

Todos:
- [x] I need to know what key combinations are used on Mac for the quick assist feature. I have Eclipse' <kbd>M1</kbd>+<kbd>1</kbd> configured for now, is this ok for Mac or do you use a different one?
- [ ] Write documentation on how to use the new extension point.
Would it be possible to have a "time budget", and timeout after, say, 500ms? Ideally, what has been computed until then would be returned. Also, a crash in one of the assists should not affect the others.