Generalize linear interpolation
This creates a (very small) api for linear interpolation between two recorded positions, velocitites, and desired velocities and moves multiplayer over to that system. Now that it is generalized, other games systems (esp. weapons fire) can now use this code to temporarily set an object's position to what it would be between frames.
In draft pending testing.
I was finally able to run a test for this now that I have a better dev machine. Interpolation works just like in the old system, so I'm marking as ready for review. This is a stepping stone to getting primary fire rates higher than the frame rate.
This really needs to get in before 24.2, otherwise higher weapon fire rate than framerate is probably not going to happen.