Spec
Implement createQueue in lib/queue.js (contract in the doc comment). This is the pattern behind upload managers, crawlers and background workers.
Key ideas: keep a FIFO array of { task, resolve, reject }; a pump() function starts tasks while running < concurrency; when a task settles, decrement running and pump again.