Ratelimiter patch

governor.py: Modified the rate limiting algorithm so that it guarantees request-limiting to <number> requests per second (if required, we can change this to different units like requests per hour, etc.) and removed a need for the server to force a delay upon itself or the client.

test_governor.py: Added the ability to use a real redis instance from the pool for testing. The new rate limiter currently causes two unit tests to fail while using the fake redis instance, but upon using a real redis instance, all tests pass. (Functional test will be updated and uploaded soon).

I just realized that we would have to sleep exactly where the former 'sleep for throttle_milliseconds' happened. However, I'm wondering if there was a clean way to know how much time to sleep for when you're there. If we were inside the governor function it would have been trivial.