Refactors the drcachesim trace file_reader to interleave separate thread files in timestamp order. It also supports a legacy already-interleaved single file. (Until raw2trace is changed to generate separate files, this legacy support is the regular mode.) The new split-file interface will support parallelization in the future.
The refactoring involves templatizing file_reader_t for the split into gzFile and std::ifstream. Side improvements include passing -verbose into each class.
Adds a cross-platform directory iterator utility.
Adds a legacy trace file test with a checked-in trace file.
Makes file_reader_t::is_complete() work for now but it may have to be removed once the refactoring is complete, due to lack of support for gzFile.
Issue: #3230 (closed)