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!
Was there a thought here that didn't quite make it out into the IDE?