notebooks: Initialize second document notebook.

The notebook is initialized in the same manner as the first one. main_widgets
gets a notebooks array. Its notebook member is kept (for now) to maintain ABI
compatibility.
notebooks: Convert Geany codebase to work with multiple document notebooks.

This commit largely reworks code that accesses main_widgets.notebook directly
so that it works with multiple notebooks.
notebooks: Add item to tab bar right click menu to move tab to other notebook.
notebooks: When selecting a document via tab bar right click menu move it to
the notebook for which the right click menu was opened.
notebooks: Indicate current document by underlining the tab label.

Now that there are multiple notebooks each one can have an active tab. The
only way to see the focussed document would be via the current-line style
of Scintilla. By underlining the tab label it should be more easy to notice
and not depend on the color theme.
keyfile: Change session save/restore to work per-notebook.

Instead of the [files] key having all session files each notebook gets a
[notebookN] key which lists the documents (and the current one). The [files]
section is still restored in order to transition old config files.
notebooks: Add automatic notebook layouting.

This will add logic so that empty notebooks are minimized. The user-set paned
position will be remembered and restored once both notebooks contain tabs again.
notebooks: Remember notebook paned split postition across restarts.

The position is remembered under the "editor_notebooks_position" key in
geany.conf.
notebooks: Enable drag and drop of tabs between editor notebooks.

This requires installing a workaround for what appears to be a GTK bug. The
default drag-drop handler leads to assertion failures. A thin, custom one that
mimics GTK default handler doesn't have this problem but still allows to to
drop files from file managers.
prefs: Add setting to toggle between vertical and horizontal split of the document notebook.