Add allow_failure and failure_handler options.

To support graceful failure/not raising after the final retry, you can use the allow_failure option.
In addition (and typically in combination), you can use the failure_handler Proc option to call code upon failure.

For example, maybe you are trying to log some information to an external DB, but if that DB can't be reached, you are ok losing that data. This will allow for retrying, but then gracefully failing. You might then log this locally and monitor those logs.