Implement EntityData.setHasMoved

Don't move an entity on undo until the original action was moving it.
This will prevent strange behavior - it's not meant to be a total time
reversal!
Add undoing changes to Players

MAGIC-61 #time 1hr #comment This is a step in the right direction,
needs testing.