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