Fixes some issues with leakybucket

* Ratelimiter functions should use the inbuilt Now() function.
* TimeToDrain should be a read-only operation
* Tests can mock time directly