This allows the displacements to be calculated between atomic coordinates from different data pipes,
different structural models, and different molecules. The user function backend has been hugely
simplified as it now uses the new pipe_control.structure.main.assemble_coordinates() function.
The Structure.test_displacement system test has been updated for the user function argument changes.