Use nil for unlimited retries

Use `nil`, rather than `-1`, for unlimited retries. `limit` still defaults to `1` if not specified.
Ooh, that's cool.