Fix: Revise run_tests.py to Return non-0 Status on Test Failure

Previously, the script would return 0 unless there was an error with the file
itself. This was fine for humans reading test results, but it doesn't work with
Travis-CI, which needs a non-zero status to signify failure, so failing builds
where showing up as "passing" on Travis.

This also means the script stops on the first failure.