Cache for successful test runs

By default don't re-run tests that have already run successfully, to
reduce latency between making a change and seeing if it fixed the last
thing that you were trying to fix.
diff --git a/.gitignore b/.gitignore
index 3cae07e..bf57027 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,6 @@
 libs
 objs
 *.pyc
+
+# cache for run_tests.py
+.run_tests_cache