Alcotest.run: ensure and_exit and record_backtrace can be overriden for the test sub-command too
`default_cmd` handles this correctly, but `test_cmd` always set
`and_exit` and `record_backtrace` to `true`.
Due to `Config.User.(cli_config || config)` this meant that `and_exit`
couldn't be set to `false` by the caller.
The main program may want to set `and_exit` to false if it has some
wrappers using `Fun.protect` for example, with `and_exit` set to true
these wouldn't run.
For backwards compatibility with old versions of alcotest one workaround
is to use `at_exit` instead of `Fun.protect` to register cleanup
handlers.
Fixes https://github.com/mirage/alcotest/issues/438
Signed-off-by: Edwin Török <edwin@tarides.com>