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.