Refactored Dispatch::Queue::Claim_Runnable_Job to make its intent clearer

Bonus: Dijkstra is turning in his grave
Dispatch::Ref now uses a pointer instead of an index, allowing inter-queue dependencies
Dispatch::Job_Wrapper is not a template class anymore