Track rate limit attributes and reject requests when the user IP has reached their limit. Use conditional API requests to reduce the number of requests that count against the limit. Signed-off-by: Eric Callahan <arksine.code@gmail.com>