Ensure that run-test preserves exit status

Run-test was squashing the exit status of test programs. This made it
less robust then it should be. We also changed several tests that
relied on this behavior to instead explicitly check for an expected
exit value.

Test: ./test.py --host -j50

Change-Id: Ic4455db1ce5f46cf7446f2f29909241d55beb144
11 files changed