Rate-limit requests

Also automatically retries requests that were rate-limited
What about using lodash for this purpose?

```
options = _.extend({
  method: 'GET',
  headers: {},
  query: {}
}, options || {})
```