prefs: Pack keybinding-related globals together and avoid much direct access

This however doesn't get rid of any of the global data itself, it only pack it
in a struct and passes pointer to this struct around instead of accessing the
global whenever possible.
prefs: Remove some global state in keybinding-related code

Use gtk_dialog_run() to run the key input dialog, which is modal anyway.
This avoids having to pass the label and the iter around for the dialog
response callback to have them, as they now only are used directly in the
function setting them in the first place.
Merge branch 'prefs-less-globals'