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.