Refactor find_queue_equivalence_classes and drain clear code
After discussions, the current find_queue_equivalence_classes for this system really only complicates the codebase for very little actual gain. After this, the system will have only one equivalence class at all times consisting of all active queues assigned to nodes and all active reservations. This simplification allows us to ensure that find_job_location only gets called twice, once for reservations, which ignore drain times, and then immediately after for the normal "production" queue jobs, which do set drain times. In both cases we can just clear drain times across the machine. In addition to testing (and more tests coming for the case that caused this examination to begin with), we know that this works, as any system with a queue or set of overlapping queues across all resources on the machine forms a single equivalence class under the old code.
Showing with 40 additions and 123 deletions