General rate limit

I dislike the Drupal pattern of returning `FALSE` instead of `NULL`. `NULL` is void for data, `FALSE` is something else.