serf: Handle FREE WALKING case where two serfs are blocking each other

This solves the problem by turning one serf around for a detour. It could be improved in the future by having a check to also allow two serfs change places in some cases.