tests: Rework RetryAction tests
Instead of having a mess of multiple FakeSafe actions use only 3 subclasses of Action:
- RaisesErrorAction: raises and error until specified number of retries.
- UnitTestRetryAction: The RetryAction subclass that can be dynamically populated.
These are the only two classes required.
For RetryAction timeout tests only have 3 tests:
- Test that RetryAction requests enough timeout for all of its retries.
- Test that RetryAction obeys the Job timeout.
- Test that RetryAction obeys the parent Action timeout.