Javadoc
This function checks that a step is legal. And adjust the movement type.
This only checks for things that can make this step by itself illegal.
Things that can make a step illegal as part of a movement path are
considered in MovePath.addStep.