Rely on the x-ratelimit-remaining header to pause workers

This simplifies throttling logic a lot
Mark exceptions for easier grepping
Support for setting the user agent header from config
Change order of optional arguments for consistency with other methods