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

This is *much* nicer than the nesting we had before.