Add a rate limiter, use it to rate limit docker pulls.

why bother to convert to 32 bit?  Is float even really needed, or could we just spec QPS as int?