Add .shouldBlock() and .isRateLimited(); normalise .isBlocked()

DISCLAIMER: All this code was written under duress (as Hunter S. Thompson would say) and I have no memory of nor make any claims to the function, logic, or legibility of this code.

These are the actions we chose to rate limit by IP:email pair specifically, nothing more nothing less.