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!
Still a TODO? I think?

Although I'm not sure I care so much about whether or not ordering is enforced. It might affect stuff. Maybe ask @RackerWilliams ?