util.prosodyctl.shell: Close state on exit to fix saving shell history
This ensures a last round of garbage collection and finalizers, which
should include flushing the readline history file.
Test procedure:
```
$ ./prosodyctl shell
prosody> s2s:show() -- any command that is not the last in history
... output
prosody> bye
$ ./prosodyctl shell
prosody> ^P
```
After this, the shell prompt should contain the last command from before
the "bye". Before this patch, recent history is gone most of the time.
rules:
- id: log-variable-fmtstring
patterns:
- pattern: log("...", $A)
- pattern-not: log("...", "...")
message: Variable passed as format string to logging
languages: [lua]
severity: ERROR
- id: module-log-variable-fmtstring
patterns:
- pattern: module:log("...", $A)
- pattern-not: module:log("...", "...")
message: Variable passed as format string to logging
languages: [lua]
severity: ERROR
- id: module-getopt-string-default
patterns:
- pattern: module:get_option_string("...", $A)
- pattern-not: module:get_option_string("...", "...")
- pattern-not: module:get_option_string("...", host)
- pattern-not: module:get_option_string("...", module.host)
message: Non-string default from :get_option_string
severity: ERROR
languages: [lua]