Rate-limit requests

Also automatically retries requests that were rate-limited
because you can theoretically send the next request before the current one completes. Although honestly, that's not a good reason for making things so complex.