NewClient creates a new HTTP client that calls limiter to apply a
rate limit to requests. If client is nil, http.DefaultClient is used.
If limiter is nil, no rate limiting is applied.
Limiter is a function that is expected to wait until rate limiting
conditions have been met. The implementation should return early
if the provided context expires.
Transport is an http.RoundTripper that calls L to apply a rate limit
to requests. If Transport is nil, http.DefaultTransport is used.
If L is nil, no rate limiting is applied.