Remove blocking behavior from dockets @kiril @tleach

This has a couple of advantages. One is that it makes it easy to set
low timeouts on all redis connections--if any op takes more than a
couple seconds, we have a problem and should bail out. Another is that
it will make it much easier to transition to Lua scripting for queue
logic--Lua scripts can't block. Lastly, it simplifies the logic of all
of our queue classes.