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!
Also, why didn't we use the `waitForLimitReset` method since the service should tell us when it's able to be hit again?