This removes the need to know the operating system we are running under Updates #2
When the all_after_pass option is enabled (which it is by default), all the tests will be run after a failing test pass. This ensures that the process of makeing the test pass didn't break something else.
When the keep_failed option is enabled, the failed tests are remembered and run with every change untill they pass.
The 'run' method now checks that the tests could be run and if that's the case, it calls the 'run_tests' method which handles the real work.