REP-667 Global Rate Limiting

Submitting the pull request now to check if tests pass. I did not include the configurable back off delay since I seem to remember discussion regarding its necessity considering that the Retry-After header is already population with a more exact value (using existing code). Does that need to be in this branch? I would have completed it, but I was in a hurry!
And about this? Are we going to hold this back on avoid ordering enforcment?