[ATR-23965] Auto configure input maker merging for empty steps
Aims to let the InputMaker in empty Steps auto-configure how it merges its inputs in empty steps.
In steps where there is such thing as a most-recent feature (i.e. empty steps which are appended on to pad the end of a leg), we should merge using the features to test equality.
In steps where there is no feature yet (i.e. empty steps which are prepended on to pad the start of a leg), we should merge using the only thing we can be 100% is accessible which is the "initiaRoI" link added by the HLT seeding algorithm.
Crashed horribly when I tried to test myself. Requires re-compilation of all packages which use the changed public headers. Leaving the runtime tests to the CI for now.
Round 2 updates:
- To provide consistency and to save CPU, we now cache a hash of the ElementLink which we identify on each incoming Decision Object as the thing which we are using to match "identical" Decision Objects and hence perform the de-duplication from the filters.
- Better ERROR messages
- Extra check for Empty IMs that an individual IM doesn't use both feature-matching AND roi-matching. That would be a mess.
- Loosen the runtime validation checks. No longer require the "roi" link to be added in Empty IMs.
Still expecting runtime to fail, but with more helpful error messages.