Fix the inconsistency among multiple runs with the same input, when using MULTISTEP friction model and no mesh
Fix the inconsistency among multiple runs with the same input, when using MULTISTEP friction model and no mesh

- The inconsistency is caused by the non-associative property of float additions. 2 blocks can collaborate in contact detection, so even though the same set of events is detected every time, the order they appear in big array can be different. When the forcs are added with different orders the outcomes can vary.
- The system is highly chaotic, small differences lead to large discrepancy in the end.
- We just sort the set of events before adding the force, problem solved.
- FRICTIONLESS model and mesh interaction is not touched in this commit. They can be fixed, but will require the same data structure and workflow as MULTISTEP, likely to remove their performance advantage. A decision is needed.

projectchrono/chrono,projectchrono/chrono,Milad-Rakhsha/chrono,projectchrono/chrono,rserban/chrono,dariomangoni/chrono,dariomangoni/chrono,dariomangoni/chrono,rserban/chrono,projectchrono/chrono,dariomangoni/chrono,projectchrono/chrono,projectchrono/chrono,rserban/chrono,Milad-Rakhsha/chrono,Milad-Rakhsha/chrono,rserban/chrono,dariomangoni/chrono,Milad-Rakhsha/chrono,Milad-Rakhsha/chrono,dariomangoni/chrono,Milad-Rakhsha/chrono,rserban/chrono,rserban/chrono,rserban/chrono