Compaction picker that splits the time range of all involved files to windows, and merges
the data segments intersects with those windows of files together so that the output files
never overlaps.
Assigns files to time windows. If file does not contain a time range in metadata, it will be
assigned to a special bucket i64::MAX (normally no timestamp can be aligned to this bucket)
so that all files without timestamp can be compacted together.