Fix incorrect behaviour due to too much cached state in Sidekiq::RateLimiter::Fetch.

Fetch was storing memoized rate data across jobs, causing rates specified for one job to be applied to another. Fixed this by factoring out a Rate class that can be used to store memoized rate data for each job that Fetch processes, before being discarded.
Merge branch 'refs/heads/procs'
Fix procs being ignored due to non-stringified keys.
Merge branch 'refs/heads/procs'