Fix GTK frame clock warnings with our about dialog

We used to set the widget's style in a style-set handler, and despite
guarding ourselves from recursive invocations, the GTK frame clock
introduced by GTK 3.8 didn't like it very much.

So, replace the manual color modification by a simpler global widget
state modification, making the code simpler and smaller, yet achieving
the same result (or so I hope and see).
Fix typo in generated geany.pc
Printing: properly claim ownership of the printing Scintilla widget

This avoids a GObject warning about unref-ing a floating object on
print termination.
callbacks: Refactor on_reload_as_activate() as document_reload_prompt()

The callback wasn't used from glade but is useful for some other places so
it's worth moving into document.c. This also fixes a bug where reload via sidebar
always reloads the current document instead of the actually clicked one.
Avoid passing non-literals to string formatting functions

Having a string literal allows the compiler to check the arguments
match the format, so avoid passing non-literal whenever possible.
VTE: avoid exporting callbacks that are only used internally
Add printf attribute to document_show_message() for better safety

Add G_GNUC_PRINTF attribute to document_show_message() so some
compilers can check the format arguments match the format string.
actions: Introduce GtkAction for each keybinding.

For all existing keybindgs a GtkAction is generated with a (for now)
empty callback. All of this is autogenerated.

From now on, keybindings can be ported over to GtkAction one by one.
actions: ui_utils: Load GtkActions via GtkBuilder.

With the GtkActions being specified in Glade they have to be loaded by
GtkBuilder. A workaround for a Gtk bug (fixed in 3.6 and newer) is needed to
make default accelerators work.
actions: Convert File->New to GtkAction
actions: Convert File->Open to GtkAction
actions: Convert File->Open Selected File to GtkAction.
actions: Convert File->Save to GtkAction.
actions: Convert File->Save As to GtkAction.
actions: Convert File->Save All to GtkAction.
actions: Convert File->Print to GtkAction.
actions: Convert File->Close to GtkAction
actions: Convert File->Close All to GtkAction
actions: Convert File->Reload to GtkAction

This commit also refactors the old reload callback into document_reload_prompt()
as the old callback was used in really strange ways.
actions: Convert Re-open last closed tab to GtkAction

diff --git a/src/actioncallbacks.c b/src/actioncallbacks.c
index c0305a7..ec114b9 100644
--- a/src/actioncallbacks.c
+++ b/src/actioncallbacks.c
@@ -204,6 +204,11 @@ on_file_reload_action_activate(GtkAction *action, gpointer user_data)
 G_MODULE_EXPORT void
 on_file_openlasttab_action_activate(GtkAction *action, gpointer user_data)
 {
+	gchar *utf8_filename = g_queue_peek_head(ui_prefs.recent_queue);
+	gchar *locale_filename = utils_get_locale_from_utf8(utf8_filename);
+
+	document_open_file(locale_filename, FALSE, NULL, NULL);
+	g_free(locale_filename);
 }

diff --git a/src/keybindings.c b/src/keybindings.c
index 413482f..6f913f0 100644
--- a/src/keybindings.c
+++ b/src/keybindings.c
@@ -245,8 +245,6 @@ static void init_default_kb(void)

 	group = keybindings_get_core_group(GEANY_KEY_GROUP_FILE);

-	add_kb(group, GEANY_KEYS_FILE_OPENLASTTAB, NULL,
-		0, 0, "file_openlasttab", _("Re-open last closed tab"), NULL);
 	add_kb(group, GEANY_KEYS_FILE_QUIT, NULL,
 		GDK_q, GDK_CONTROL_MASK, "menu_quit", _("Quit"), "menu_quit1");

@@ -1299,14 +1297,6 @@ static gboolean cb_func_file_action(guint key_id)
 {
 	switch (key_id)
 	{
-		case GEANY_KEYS_FILE_OPENLASTTAB:
-		{
-			gchar *utf8_filename = g_queue_peek_head(ui_prefs.recent_queue);
-			gchar *locale_filename = utils_get_locale_from_utf8(utf8_filename);
-			document_open_file(locale_filename, FALSE, NULL, NULL);
-			g_free(locale_filename);
-			break;
-		}
 		case GEANY_KEYS_FILE_QUIT:
 			on_quit1_activate(NULL, NULL);
 			break;