Dispatch::Queue can now avoid entering busy loops

Both Dispatch::Queue::Add() and Dispatch::Queue::Run_One_Job() can now fail if
no suitable slot is found (i.e. no slot is free, for Add(), and no slot is
waiting, for Run_One_Job()).