Currently the only way to exit the tui engine is for the launcher.rs to provide exit keys to the main_event_loop. Change this so that there is a EventPropagation::Exit which allows an app to also exit itself, w/out relying on the exit keys support. This also allows the app to perform its own cleanup which is critical when there are files, databases, network, caches that need to be cleaned up.
More info:
- https://crates.io/crates/ctrlc
- https://rust-cli.github.io/book/in-depth/signals.html