Add rate limiting to external HTTP requests

Some third party services such as Reddit require rate limiting of some amount of seconds before any subsequent requests are made.

This can be achieved by wrapping all calls with a `rateLimitedRequest()` function which sleeps the required number of seconds before making another request (if required)

**TODO:**
* Refactor `makeRequest` to handle `urlopen` error cases