Changebar port from codeblocks

This patch enables experimental scintilla changebar for geany. For testing only.

Conflicts:
	scintilla/src/CellBuffer.cxx
	scintilla/src/CellBuffer.h
	scintilla/src/Document.h
	scintilla/src/RunStyles.cxx
	scintilla/src/RunStyles.h
Add sidebar tree

This is an implementation of cusomizable sidebar tree. This patch keeps
existing sidebar and adds new option - show documents in sidebar as tree.
Merge remote-tracking branch 'upstream/master' into changebar

Conflicts:
	scintilla/src/Document.cxx
Fix build with GTK < 2.24

Part of #1047.
Fix build with GLib < 2.32

Second part of #1047.
Handle binary files.
Merge branch 'binary-files'
Merge branch 'changebar'
Merge remote-tracking branch 'github-scriptum/rpg-sidebar-tree'
Fix racy glib assertion failure.

The info bar's unrealize signal can be emitted after the document's sci
is destroyed. Take a reference on the sci to avoid that.
document.c: Restore lost document_set_text_changed(doc, TRUE) call.

It got lost by accident in 5117940.
notebook.c: Add new GeanyPage class.
notebook: Use GeanyPage to create the notebook pages.
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: Add GtkLabel member to GeanyPage.

< ... >
notebook: mru_docs: Store the page widget instead of document pointer

on_notebook_switch_page() has only the page widget at hand when manipulating
the mru list. And a future commit will add a similar signal handler that needs
to do the same. To save multiple costly sci->doc lookups the mru list just
stores the widgets instead. It also allows removing on_document_close()
from notebook.c (merged into removed-page handler). 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.
geany.glade: wrap document notebook into paned and add a second one