locomotion overhaul

Job subclasses now use TargetAcquisition to set their current target,
all movement is handled by the Job class itself.

Implementations can assume any required movement is complete in the
doJob method.