First stab at optimizing pathfinding. Jobs are now caching distance to the following jobs, so that we only have to route again if the following job has changed