toggle_filter_t starts off either enabled (outputting all entries) or disabled (not outputting any entry), and then toggles when the given instr count is reached. This is useful for splitting/shortening/delaying a trace.
Adds logic to record_filter that ensures that essential trace entries, like the shard header, unit header, and footers, are not skipped. Also, misc entries like v2p mappings and encodings are conservatively output almost always.
Adds a new parameter to record_filter_func_t::parallel_shard_filter() that allows the filter to let the record_filter tool know that the remaining trace can be skipped, at least as far as that filter is concerned. This allows the record_filter to exclude misc entries (like encodings, and v2p mappings).
Adds the functionality to truncate or delay a trace using the toggle_filter_t, to record_filter_launcher.
Adds a test for toggle filter.
Issue: #5675