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).

Yes, that's a good and easy way to do it. My concern was that if the server is sleeping after having exhausted its request limit for a project A, a request from project B would not get serviced until the next second. 

Extending it to the case of multiple web heads, theoretically if all of them are sleeping, any request that should technically be allowed (since it has not reached its individual limit yet) would still have to wait. It's just a short wait though :) As long as we're okay with this, we can go ahead and implement the sleeping.