On track movement fixes and improvements

Add start_on_track option for OnTrackMovement components, which will
have a spinner look for a track next to it to attach to.

Fixed a major issue in which on track objects would be detached if a
frame took too long (they would move too far in a straight line without
adjusting to the track). On track objects now calculate their position
in as many iterations as necessary based on how far they are moving in
one frame.