Lock TokenBucket.{take,count} individually

Whilst take does surround count, count can be invoked outwith take and
as it also mutates the bucket should lock too.
SlowQueue.reset_tokens definition

Allows the queue manager to reset the token counter as close to
execution as possible, minimising the tokens accrued prior to take-off
and hence minimising the likelihood of a slam.
Slam aversion and unit tests