replay: Rework code for removing externals
Removing an external path from the reconstructed filesystem can be tedious due to numerous edge cases where externals are defined in different directories but some of their paths overlap.
Previous code was not properly handling all cases so rework it to ensure it does and add a new test with a new edge case.
It fixes the proper loading of the following origins reported in SWH-LOADER-SVN-FT: