Prompt to overwrite in Windows Save As dialog

Add OFN_OVERWRITEPROMPT so the dialog will prompt before overwriting an existing file.
Remove the OFN_FILEMUSTEXIST flag, which works only with Open dialogs.
"Enter in replace entry does Replace & Find instead of Replace" setting
in General/Misc/Search.
TM: simplify match test for current tag
TM: don't needlessly duplicate array when searching for current tag
Initial support for single-line regular expressions matching
Pack Scintilla widgets into a GtkVBox and use it as the notebook page.

This is to allow stacking widgets such as GtkInfoBar above the Scintilla
widget in each tab.

notebook.c need to be changed because the document isn't the direct widget
anymore which was assumed for tab closing.
Add new function document_show_message()
Use document_show_message() when a file is externally modified

Two other related changes are that document_set_text_changed() is used to
indicate that the buffer is different from what's on disk and also that
the 'Close' button has been removed from the dialog since the user can easily
just close the document themselves the normal way.
Use document_show_message() when a file is removed from disk

The close button is removed from the dialog also since the user can easily
choose to close the document normally.

Setting default response removed since it's not working yet.
Make locate_sci_in_container() search recursively

Supports changes to the widget heirarchy in the future.
infobars: Make document read-only while infobar is shown.

This avoids accidental changes the file until the infobar is ackowledged. The
document can still be viewed and scrolled through but modifications and saving
are disabled. Of course ignoring the document by changing to another one is
also possible.
infobars: Do not show reload and resave messages more than once since only the
last one (respectively) is significant to the user.
infobars: Cancel "reload file" dialog when spawning the "resave file" one.

When the file was deleted from disk the message that the file is newer on
disk has become out of date and irrelevent.
infobars: Intercept some keys when the info bar is shown to allow interacting with it using the keyboard only.

When the info bar is shown tab/shift+tab and escape are intercepted.
* tab/shift+tab change the focus to the info bar buttons which can then be
  cycled through with more tab presses
* escape closes the info bar (same as clicking cancel)

Both keys aren't needed for the document because it's read-only. Other keys,
such arrow/page up/down, remain to the document for navigating.
infobars: Do not use GeanyWrapLabel for now, it has problems on gtk3.
infobars: Dismiss the info bar when reloading via toolbar button/keybinding.
Merge branch 'kugel/document-messages2'

This is an extension of the long-lived `document-messages` branch.

It is mostly adjusted according to the feedback on the mailing list.
There might existing some usability issues to be resolved, but this
is the first step towards non-modal document notifications.
notebook: Fix crash on tab close

Since infobars notebook_tab_close_clicked_cb() wants a GeanyDocument as userdata.
show_tab_bar_popup_menu() on the other hand wants the actual GtkNotebook child.
Don't use the notebook page widget for tab popup

Directly use the GeanyDocument rather than pass the notebook page
widget and get the document from that.  This makes the code more future
proof and less weird.
Remove unused variables and avoid variable shadowing