home: Fix use after free

add_keybindings() kept the GActionEntry around but not the 'name' string
of these. Those were freed by with overview_bindings and
app_view_bindings. When PhoshHome gets destroyed we iterated over
self->actions referencing already freed string names.

To avoid this don't track GActionEntries but rather just the action
names which also avoids reconstructing the GActionEntry in
PhoshGnomeShell:remove_action_entries().

This avoids the following valgrind error:

==14994== Invalid read of size 1
==14994==    at 0x56623D0: g_str_hash (ghash.c:2335)
==14994==    by 0x5660D6A: g_hash_table_lookup_node (ghash.c:473)
==14994==    by 0x5660D6A: g_hash_table_lookup (ghash.c:1513)
==14994==    by 0x54CDCBB: g_simple_action_group_remove_action (gsimpleactiongroup.c:234)
==14994==    by 0x17F480: phosh_shell_remove_global_keyboard_action_entries (shell.c:1287)
==14994==    by 0x168E2E: phosh_home_dispose (home.c:349)
==14994==    by 0x55E2438: g_object_run_dispose (gobject.c:1226)
==14994==    by 0x17CA10: panels_dispose (shell.c:271)
==14994==    by 0x17CA10: phosh_shell_dispose (shell.c:346)
==14994==    by 0x55E10A2: g_object_unref (gobject.c:3465)
==14994==    by 0x55E10A2: g_object_unref (gobject.c:3395)
==14994==    by 0x12B197: glib_autoptr_clear_GObject (gobject-autocleanups.h:27)
==14994==    by 0x12B197: glib_autoptr_clear_PhoshShell (shell.h:57)
==14994==    by 0x12B197: glib_autoptr_cleanup_PhoshShell (shell.h:57)
==14994==    by 0x12B197: main (main.c:80)
==14994==  Address 0xde089f0 is 80 bytes inside a block of size 96 in arena "client"

This was spotted on a regular phosh shutdown but would also trigger when
moving the primary display which recreates PhoshHome.

Signed-off-by: Guido Günther <guido.gunther@puri.sm>
11 jobs for use-after-free in 34 minutes and 4 seconds (queued for 2 seconds)
Status Job ID Name Coverage
  Build
passed #343400
librem5
build:cross-debian-bullseye:i386

00:11:27

passed #343401
librem5
build:native-alpinelinux-edge

00:08:18

passed #343399
librem5
build:native-debian-bullseye

00:11:13

 
  Test+Docs
passed #343403
librem5
build-gtkdoc

00:03:45

passed #343405
librem5
check-license-headers

00:02:16

passed #343404
librem5
check-po

00:00:26

passed #343407
librem5
test:smoke:one-output

00:01:30

passed #343408
librem5
test:smoke:two-outputs

00:01:29

passed #343406
librem5
unit-test:native-alpinelinux-edge

00:00:45

passed #343402
librem5
unit-test:native-debian-bullseye

00:03:10

14.3%
 
  Package
passed #343409
librem5:arm64
package:deb-debian-bullseye:arm64

00:18:07