Add `EditorUtilsTest` to check correctness of text selections

Includes the test suite and some first tests.
Add tests that check changes after cursor position

The test suite logic had to be updated accordingly.
Restore correct cursor position when cursor is before removed range

In case there exists a multi text edit, which removes text before and
after the text selection, the cursor wasn't correctly restored.

The implementation need to find all regions that exist before the text
selection and only subtract them from their size from the old cursor
position in order to create the new position. Because the implementation
also needs to find out if the text selection intersects with a changed
region it is easier to find all regions that exist after the selection
and subtract their size from the entire size of the change.
Cursor correction after text is added after cursor position

We need to look if text is added to subtract it from the offset that
needs to be corrected.
Correct test suite to handle changes where cursor inside of range
Update test suite and add tests to handle text selections

Tests that test unimplemented behavior are ignored. The cases 1-6 are
documented in the test suite.

The logic in `applyMultiTextEdit` has changed in so far that all
selections that overlap a region in any way are treated as overlapping
and not only selections that are completely inside of a region.
Implement fourth case to preserve text selection

In this cases the entire content that was selected is deleted, therefore
the new selection has a size of zero.
Implement behavior for last selection tests

All cases 1-6 are now correctly implemented.
Refactorings in `EditorUtils.applyMultiTextEdit`
Rename `EditorUtilsTest` to `TextSelectionTest`
Add helper classes for Eclipse region related types
Replace ⇒ and → with their ASCII variant
Merge branch 'master' into correct-selection-after-multi-edit

Conflicts:
	org.scala-ide.sdt.core/src/org/scalaide/util/internal/eclipse/EditorUtils.scala
	org.scala-ide.sdt.core/src/org/scalaide/util/internal/eclipse/RegionUtils.scala
Move BasicCompletionProposal to public API
Cleanup in ImportCompletionProposal

The superclass BasicCompletionProposal already provides all necessary
behavior.
Refactorings in AddValOrDefProposal

The supertype BasicCompletionProposal is added
Create image on UI thread

Previously the image would have been created on the compiler thread,
which would have been a problem because creating images can only be done
on the UI thread.
Fix possible race condition in AddMethodProposal

Creating a refactoring needs to be done on the compiler thread.
Rename quickfix package to quickassist

There is no need to differ between them. Quick fixes are also quick
assists, therefore it is enough to only use the latter word.
Introduce better EclipseUtils.withSafeRunner method