Added run_exps.py option to --retry failed experiments.

If the retry flag is specified, failed experiments will be re-run after all
other experiments have run. They can be re-run at most 5 times.

This commit required a refactoring of run_exps.py to clean up the main
experiment running loop.