Fix manifest stale entry eviction on IU ID changes
When re-canonicalization changes an IU's canon_ids, the iu_id changes
too. The manifest previously accumulated both old and new entries for
the same file path, causing false drift detection.
Now recordIU() and recordAll() evict stale manifest entries that own
the same output file paths as an incoming entry with a different IU ID.