Refactored editor and scenario loading to share more code.
Clean up the movement code.

Convert Pawn::Move into a predicate function, it doesn't do any actual
movement now.
Unify everything that involves moving onto a tile or dealing with tile
effects into ServerGameState::move_pawn_to.