A std::unordered_set, even using dr_allocator_t, raises transparency risks when statically linked on Windows (from lock functions and other non-allocator resources). We thus create our own resource-isolated class to track GPR register inclusion for drmemtrace elision optimizations.
Adds unit tests of the set class to burst_traceopts.
Further tested manually by ensuring the same number of elided addresses is seen as with std::unordered_set in the burst_traceopts test: [drmemtrace]: Reconstructed 622 elided addresses.
Even further tested by ensuring that raw2trace using the new set correctly operates on a raw file that was created using std::unordered_set.
Issue: #975, #4403 (closed)