Don't rate limit when the mode is "unlimited".

Also add more tests surrounding the header counters.
Change how distributed rate limits get synchronized.

Distributed rate limits are now kept in sync between Mongo and Redis in
a background task that polls Mongo for changes. Previously, they were
only being kept in sync after a request first hit a server with the
given key. This worked okay under heavy loads, but with more infrequent
loads it led to confusing results, since the user could end up having
wildly different rate limits according to each server's local Redis data
that wasn't refreshed until after that first hit.
Removed some redis lua experiments.

The Lua approach would give us atomic logic in our distributed syncing,
but I don't think that's really necessary here.
Merge branch 'master' into gsa