Moving sys.exit() to the caller will make it easier to implement
exit handling in Rust hg by eliminating the need to handle
SystemExit in Rust.
.. api::
dispatch.run() now returns an integer exit code instead of calling sys.exit(). Callers of dispatch.run() must now exit.