implement --retry and --attempts options to rerun tests that fail due to...

... external circumstances (eg. network timeouts)