Improve “you are recording a macro” dialog

Rather than tell the user how to stop recording, we now offer it as an option.
Add API to get folded range for a point

This is required to show tool tips when hovering a fold marker or to unfold the fold marker clicked.
Add API to unfold a range

The function will unfold anything completely within the range that also touches one of the range’s end points.

This is because the layout will show adjoining folded ranges as a single image, so if the user clicks this, it is unclear which of the ranges to actually unfold (the layout return a range that encompass all the adjoining folds).
Clicking a folded range will now unfold it
Fix value for AXSelectedText

We were grabbing a const reference to a reference into a temporary object (result of editor_t::ranges), so the range used was effectively a pointer to a destroyed object.
Change ASSERT_NE → ASSERT

Since we do not have a to_s function defined for the iterator type, we cannot use “semantic assertions”.