Implements timestamp ordering in scheduler_t rather than relying on the old implementation inside file_reader_t.
Adds a sanity test.
Removing the file_reader_t code, along with eliminating the thread-as-sub-reader API routines, will be done as a separate refactoring.
Issue: #5843