Added a wrapper for curl_exec calls to retry if rate limiting encountered

The number of retry attempts is configurable by calling the ::setRateLimitRetryAttempts() static method.