Negative number of suppressed messages

If one got too many messages in presumably enough (actually not) time interval an integer overflow can occur in rate-limiter. Thus one can observe negative or even wrong seems-to-be-ok number of suppressed messages. Example of such log message:

Failing because we have 991 connections already. Please read doc/TUNING for guidance.
[-1237925175 similar message(s) suppressed in last 21600 seconds]

I've made a patch (see attachment) to address this issue by adjusting the rate if initial rate assumption is not valid anymore (plus boundary conditions handling). Thoughts?

NB: I've made no test (yet) for this behavior.