Replace dialog: create the SearchContext only when a button is pressed
Replace dialog: create the SearchContext before the actual search

The object method handler gedit_replace_dialog_response() creates the
SearchContext if it is not already created.

In commands-search.c, replace_dialog_response_cb() must be called after
the SearchContext creation, to execute the actual find or replace.

If replace_dialog_response_cb() is called before, the SearchContext may
not be already created, and the find or replace doesn't work.
Replace dialog: do not bind the search settings

The reason of the previous behavior is now explained in the code.

The regex errors appear when a button is pressed, and disappear when the
search entry's text is modified. Before, a regex compilation error was
reported directly, as soon as the pattern is typed. This is possible if
we create a hidden SearchContext (without highlighting) besides the
normal SearchContext. This hidden SearchContext would be created
directly, and also on each document tab switch.
Replace dialog: one SearchSettings per document tab

To get the search context from the GeditDocument, the previous code
tested if the search settings is the same as the one stored in the
private struct.

Now the search context is marked with g_object_set_data() to recognize
it (to avoid modifying a SearchSettings created in GeditViewFrame).
Replace dialog: more documentation