[merge] Don't draw these weird horizontal lines at the gutter.
javadoc
@Nullable
[merge tool] Make possible to hide/show line numbers, soft wraps and use other editor settings.

* Introduce an action in the merge tool toolbar to change settings of all 3 editors.
* Save the settings in MergeToolSettings, workspace-level.
* Since all 4 settings are similar, hold them in a separate enum MergeToolEditorSetting with the #apply() method which would apply the setting to the passed editor.
* Get rid of EditorPlace.ViewProperty and all related methods and classes. Instead use more simple way to initialize settings (MergePanel2#initEditorSettings) and to change them (#setHighlighterSettings and other - for DiffPreviewPanel
* Remove EditorPlace.ComponentState - no need in the additional level of abstraction since the DiffEditorState is the only usage.
* Make some small cleanups and refactorings.
[merge tool] Don't show the default gutter popup.

REASON:
* The settings are available from the new gear-button on the toolbar.
* The settings can't be possibly available without the gutter (which is probably in the future + if line numbers are hidden).
* Default popup contains "show annotate" (not applicable for merge tool), but doesn't contain "use soft wrap" (totally applicable and useful).
* Default popup affects only the editor of the selected gutter, but it means no sense to disable, for example, line numbers in one merge editor, but enable it in the other. Changing the behavior of the popup, on the other hand, can confuse the user.

DETAILS:
* Introduce EditorGutterComponentEx#setShowDefaultGutterPopup and call it when initializing editors.
[merge tool] fix setting the EditorColorsScheme on editor creation
[merge tool] return the line markers area (with apply and ignore buttons), which was occasionally removed when rewriting merge tool settings.
UIUtil: add drawLine taking colors as params
TrafficLightRenderer: don't refresh error stipes if they are not displayed, add a method to know this to EditorMarkupModel.
EditorEx: getVerticalScrollbarOrientation

Already implemented in EditorImpl, pass up to the interface.
Will be used in the merge tool.
[diff/merge] IDEA-86287 Fix diff dividers position in the merge tool.

Use different offsets for merge and diff (because of different layouts of the tools), specify the offset in the DividerPolygon constructor.
[merge tool] Make diff markers flow above gutters and scrollbars, thus connecting editor highlightings and diff dividers.

EditorPlace is a container for editor, that is put into the merge tool dialog.
* Override its paint() method, and paint above gutters and scrollbars. Right and Left columns need to paint only above the gutter, while central needs to paint above the gutter for the left-side change, and above the scrollbar - for the right-side change.
* To calculate the coordinates of the painted rectangles, use the existing method: DividerPolygon.createVisiblePolygons. It is calculated when painting DiffDividers anyway, so this extra calculation can be avoided, but for the code simplicity and because there are no performance problems with it, it's decided to leave as is for now.
* Since the markers are painted above gutters, line numbers and scrollbars, they need to be semi-transparent. Make DividerPolygons' colors have the same transparency (this will affect the diff tool as well, but it looks fine).
* It is not possible to have a semi-transparent background highlightings in the editor, but it looks not very good to have different colors for text background and the markers on dividers and gutters. To fix this emulate transparency by taking the color in between of the diff type color and editor's background, considering the transparency coefficient. This is done in the TextDiffType. This should be tested in other color schemes.
* Introduce the MergePanelColumn simply enumerating 3 columns of the merge tool. The goal is to use it everywhere in the merge tool code, instead of referencing columns by digital indexes and manipulating FragmentSides. Use it in the EditorPlace.
[merge tool] "All changes resolved" message: show based on the component, not on the project.

May fix some focus issues.
[merge tool] better dividers for applied changes

Let DividerPolygon know whether it is applied or not.
Draw applied polygon as a rectangle instead of a filled square (actually via 2 lines).
Make applied polygon non-transparent, to enhance its visibility.
Draw applied changed markers above EditorPlaces as bold dotted lines instead of a filled square.
[merge tool] Double-lined separators for insertion/deletion highlighters.

+ refactoring: reusing LineSeparatorRenderer instances.
[merge tool] draw insertion/deletion one-line markers with the diff color instead of framing color
[merge tool] Fix line separator coloring for applied changes

It is incorrect to use g.getColor() to draw the separator.
Take value from the TextDiffType.
As a result, move the LineSeparatorRenderer inside addBlock(), because we need the editor color scheme.
[merge tool] Better gutter markers, solve EditorPlace repaint problems on dialog init, and on change apply

Problems:
* On dialog show, vertical scrollbars are independently repainted from the Animator in the ButtonlessScrollbarUI => after unknown period of time after dialog init, the scrollbar gets repainted, thus overdrawing the change markers.
* On change apply, the document gets modified, editor highlightings change, and gutter is repainted, thus also overdrawing the change markers. Subscribing to merge list events is not sufficient, since document is updated from one of such listeners, and the order of listeners calling is undefined.
* Since the change markers are drawn with a transparent color above the gutter, line numbers and apply/ignore actions look pale, and even seem disabled.

Solution:
* Don't draw above the gutter, instead implement a LineMarkerRenderer and draw gutter background.
* Repaint markers drawn above the scrollbar on each scrollbar repaint.
  (btw, doing the same with the gutter doesn't work, because redrawing the gutter so often makes the scrolling process unacceptably jittering).

Details:
* EditorEx.registerScrollBarRepaintCallback to be called on each scrollbar repaint.
  Register the callback in the EditorPlace, and repaint just the scrollbar.
* Remove all drawing above the gutter from EditorPlace, leave only drawing above the scrollbar. It simplifies the code, btw, by removing the SideInfo helper, and many if-else branches.
* Add a LineMarkerRenderer to the RangeHighlighters, which would draw the needed marker in the gutter.
* Modify the EditorGutterComponentImpl so that line numbers are painted after line markers, but line numbers background is painted as usual. That makes possible to fill the entire gutter with a color (from a LineMarkerRenderer), but still draw the line numbers above it.
* Playing with transparency is no more needed, so remove it from the DividerPolygon.
EditorGutterComponentImpl: fix calculation of the space needed for foldings

Seems to be a misprint in the old code: if the folding outline is not shown, no need to reserve place for it.
[merge tool] Remove middle-color hack in TextDiffType

It was used to make the highlighting look the same as the semi-transparent colors drawn above the gutters.
Since another logic without transparency is used now, there is no need to change the diff color defined in the settings.