Introduce tokenbucket rate limiter and basic tests