Now that dispatch.run() handles special exit cases and always returns
an exit code, Rust's (formerly lacking) invocation of dispatch.run() can
handle the return value with minimal hassle.
In addition, we change Rust to exit 1 instead of 255 in the case
of unhandled errors, as that is actually what Python does.
This fixes a few test failures when running the test suite with rhg.
s/unreachable/panic/ since the code can never be hit as long as the python code returns the right type.
Also it might be a good idea to try to print out the value returned in the error message. Although if not easy it is probably not worth it.