Cleaner request throttling

Use ``async.queue`` instead of my janky implementation.  Use
module pattern to encapsulate variables related to scheduling.