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.
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
Merge PR#113
Remove empty table rows in the Glade file

This avoids glade from emitting some useless placeholders.
No UI changes.
Remove some empty table rows and columns from the Glade file

Cleanup some useless placeholders, and replace some one-column tables
with vertical boxes.

No UI changes.
Fix an inverted check
Properly mirror document_get_from_page() in document_get_notebook_page()

Now document_get_from_page() supports arbitrary nesting inside the
notebook page, update document_get_notebook_page() to support it also,
by searching up for the direct notebook child rather than assuming it
is the ScintillaWidget's direct parent.
Avoid code duplication in document_get_current()
Fix a few missing/extra includes
infobars: Use wrap labels to avoid cropped infobars

Since the infobar is backed in a GtkPaned that allows "shrink", if the
content is too wide, it's far end will just get cropped.  Also, wrap
labels are nicer to display possibly long texts as it flows naturally.
Do not use backward slashes in geany.pc on Windows

And explicitly convert backward slashes in the global
prefix to forward slashes as tools like pkg-config or
gcc could interpret the backward slashes as escape
sequences.
notebook: Remove tab_count_changed() function and dead code

tab_count_changed() is not necessary because the same can be achieved
with the "page-added" and "page-removed" signals. This also automatically
works for other other cases of page count changes.

Also remove dead setup_tab_dnd() code. The "page-reordered" handler does nothing.
document: Remove duplicated code

Since document_compare_by_tab_order_reverse does the exact reverse of
document_compare_by_tab_order the code need not to be duplicated. Instead
document_compare_by_tab_order can be called and the return value be reversed.
notebook: mru_docs: Store the page widget instead of document pointer

A future commit will manipulate the mru list with only having the page
widget at hand. To save a costly sci->doc lookup the mru list just stores
the widgets instead. This change is going to be needed if we ever want
non-GeanyDocument-tabs anyway.
mru_docs: s/mru_docs/mru_tabs. It does not store doc pointers anymore.
notebook: Use sci directly in focus_sci()

The detour via document_get_current()->editor->sci is unecessary if sci can
be passed as user_data.