provider-exec: Add options for prefixes

Under providers/exec can be found a few options, specifying the default
mode (when no prefix was found) as well as the prefix (single character
only) for each mode.

In addition, for MODE_TERMINAL it is possible to specify alternative
terminal cmdline using "secondary" prefixes (those can be multiple
characters), allowing either different options (e.g. autoclose window or
not) or different emulators.

We also handle related parsing/loading from config at node creation, so
if the config (e.g. a prefix) was to change (between creation & trigger)
the node would still behave as intended.
ct-perms: Fix Enter/Esc not working to set/cancel
treeview: Fix handling key before last key has been fully processed

It was possible to have a key processed before the last one had been fully
processed and keys were reset. This could happen in trigger_fl() would
start a new main loop (e.g. via its get_node() in a "slow" provider) or
if the triggered node was FAST/GUI and processed events.

For example, pressing "eop" fast enough would get the "p" to be processed
during the trigger_fl() for "eo" and then be processed as "ep" resulting
in two floating windows for permission editing at once.
app: set_floating_window(): Set window transient for app main window

I.e. calls donna_app_add_window()
columntype: Place floating windows on center of parent

At mouse position is awful for key-triggered actions.
treeview: doc: Minor typo
ct-time: Fix Enter/Esc not working to set/cancel
ct-value: Fix Enter/Esc not working to set/cancel
config: set_option() window: Fix Enter/Esc not working to set/cancel
treeview: save_to_config() window: Fix Enter/Esc not working to set/cancel
columntype: ask_sl() window: Fix Enter/Esc not working to set/cancel
app: set_focus(): Fix memory leak
app: set_focus(): Allow ":active" as treeview name
app: Fix handing same treeview used twice on layout
command: Fix handling of uint args

Commands only support ARG_TYPE_INT, used for both gint & guint arguments.
However, we shouldn't cast to guint and assume it's fine, since the
command parser deals with gint.

Cast to gint, and check it is >=0 (and therefore safe to cats to guint),
else fail the command for invalid value.
debug: Minor tweak

Silence some warnings, as we sometimes use variable n (for node)
provider-command: Minor fix
provider-task: Fix devices for in-memory tasks

No need for an array with a NULL pointer, an empty array is just as good
(since unknown means no array).
task-process: Add import_environ()

Because when we use {un,}setenv() we actually switch from using the
current environement to a brand new one, with only what we (un)set.

This might be good to create a brand new/clean environement, but when
we only want to change/add a variable, simply get import_environ() first.
treeview: Minor fix

Although really, if we ever make unloading treeviews possible, we'll have
to review things, as there as memory leaks there...