Simple library for retrying an async operation with exponential backoff