Search and replace: work with the original search text

Not through the SearchSettings.
Fix escape bug with the search and replace completion

The completion contents was unescaped before inserting it, and escaped
after retrieving it. But the unescape/escape functions are not
reciprocal. So it's easier to always deal with the original text.

As a consequence, the gedit_history_entry_set_escape_func() function is
no longer needed.

Little problem: there will be bugs with old completion entries, when
upgrading the gedit version.
ViewFrame: fix unescape/escape cycle bug
Bind the search-highlighting setting to the SearchContext
Search and replace: create directly the SearchContext

As soon as the search and replace dialog is shown, we create the
SearchContext. Before, the SearchContext was created only when a dialog
button (find, replace, ...) was pressed.

When the document tab changes, we also create the SearchContext
directly.

Once the SearchContext is created, changing the search text or the other
search settings have a direct effect on the buffer. The highlighting is
updated, etc. So it is a bit like the incremental search, except that
the current match is not updated and selected when the search settings
change.

With the search and replace API from GtkSourceView, we have this
behavior almost for free. If we wanted the old behavior, it would be
more complicated.
gedit_replace_dialog_new(): GeditWindow parameter

Currently GeditReplaceDialog contains almost only the UI. It doesn't
interact with the GeditDocuments. The purpose is to move some code from
gedit-commands-search.c to GeditReplaceDialog. The latter is a more
logical place in my opinion.
Move code from gedit-commands-search to GeditReplaceDialog

When the search and replace dialog is shown, get the buffer selection,
and if the selection is small enough, place it in the search entry.
Create the SearchContext in GeditReplaceDialog
Search and replace: better update buttons sensitivity
ReplaceDialog: disconnect regex-error notify signal

We have to remember the GeditDocument where the regex-error notify
signal has been connected to (more precisely, the SearchContext attached
to the GeditDocument).
ReplaceDialog: better update replace button sensitivity

Now the replace button is sensitive only when a match is selected.