Add bulk test, and fix JobTimeout stalling the queue
The bulk test randomly generates jobs that will succeed, fail or time
out and then at the end it checks that the % distribution matches the
When running this test, every JobTimeout makes the queue loose one
running job, effectively reducing the concurrency of the queue. Since
we're not continuously adding jobs, it ends up stalling the queue when
it reaches concurrency 0.
To fix it, we call _processQueue at the finally of the promise returned
on push, given it the rejection of the JobTimeout bypasses the finally
call on _processJob.
WIP: The fix makes the running of the test a lot better (without that
fix it hangs around 400, with it around 900), but it still doesn't work
properly for some reason. Any help appreciated.