If the return value is an integer, treat it like an exit code. Otherwise, if
it is None, treat it like 0. Otherwise treat it as an error. This behaviour is
equivalent to that of sys.exit. Also fix our own sys.exit handling to match
this, and add tests for everything.
--HG--
extra : rebase_source : e36155d8fbe555e76effd182979cd6b1000a6ece