text: Title: Choosing to cancel on list menu dialog 
  Body: ### Has this issue already been reported?
  
  - [X] I have searched through the existing issues.
  
  ### Is this a question rather than an issue?
  
  - [X] This is not a question.
  
  ### What type of issue is this?
  
  Bug
  
  ### Which Linux distribution did you use?
  
  Manjaro/KDE
  
  ### Which AutoKey GUI did you use?
  
  Qt
  
  ### Which AutoKey version did you use?
  
  0.95.10-4
  
  ### How did you install AutoKey?
  
  Arch User Repository
  
  ### Can you briefly describe the issue?
  
  When using the dialog.list_menu in a script, choosing to cancel causes an error. I haven't tried it on many different configs but it causes the error consistently
  
  ### Can the issue be reproduced?
  
  Always
  
  ### What are the steps to reproduce the issue?
  
  1. Use the "List Menu" example script
  2. Trigger the script
  3. Press cancel or Esc
  
  ### What should have happened?
  
  I believe it should have output None or an empty string as the choice output
  
  ### What actually happened?
  
  The script raises a ValueError and stops
  
  ### Do you have screenshots?
  
  _No response_
  
  ### Can you provide the output of the AutoKey command?
  
  ```bash
  Script name: 'List Menu'
  Traceback (most recent call last):
    File "/usr/lib/python3.10/site-packages/autokey/service.py", line 485, in execute
      exec(script.code, scope)
    File "<string>", line 3, in <module>
    File "/usr/lib/python3.10/site-packages/autokey/scripting.py", line 347, in list_menu
      choice = options[int(result)]
  ValueError: invalid literal for int() with base 10: ''
  ```
  
  
  ### Anything else?
  
  There is an easy solution. Looking at the stack trace, the problem is rooted in the scripting.py file. On line 345:
  `return_code, result = self._run_kdialog(title, ["--radiolist", message] + choices, kwargs)
  `
  when the user cancels the result is an empty string. However the next line 
  `choice = options[int(result)]`
  does not take that into account and immediately tries to cast to an int which causes the ValueError. The self._run_kdialog function returns a nonzero return_code and an empty string for the result. If you check the return_code for a nonzero value you can just assign a None value (or whatever) to the choice and make the user deal with that choice. 
  
  ```
  -        choice = options[int(result)]
  +       if (return_code == 0):
  +            choice = options[int(result)]
  +       else: 
  +            choice = None
   @@ -345 +346,348 @@
  ```
  TL;DR never checked for an invalid value, now you should check and deal with it.