Moved wait set out of Pending

Previously, whenever a VICTIM_READ to DRAM or a LINE_READ to flash occured
that could result in HybridSim waiting for multiple accesses to complete
before proceeding, HybridSim would create a new unordered_map<uint64_t>,
which would be made available via a pointer called wait in the Pending
set. As the accesses completed, the addresses would be removed from the
wait set. When the wait set was empty, that indicated to HybridSim that
the VICTIM_READ or LINE_READ operation was finished.

In preparation for changing the way the dram_pending and flash_pending
maps are addressed, the wait set pointer was removed from Pending
and two new unordered_map<uint64_t, unordered_set<uint64_t>> were
created in HybridSystem: dram_pending_wait and flash_pending_wait. The
dram_pending_wait map is addressed by a cache page address (just like the
dram_pending is in this commit, although that will change soon). The
flash_pending_wait map is addressed by a page address. Overall,
the functionality is exactly the same as how the wait set worked
previously. The only difference is in how the wait set is stored.