agents now don't start a new action until they are at rest in the y
dimension

also, rotation must be done separately from movement now.
Rotating while moving in relative directions didn't play
nicely with the calculations of where agents were going to
ultimately end up (which is important for ensuring that
exactly the distance requested is actually travelled)