requests can be "lost" because [].shift is nil

this means that when all workers are busy they can lose
a request that comes in when it tries to shift off a worker

this PR adds a local queue that will queue that request until
a worker is available to work that queue

fixes #188 

@localshred