Fix teleportation bug

My earlier commit broke teleportation randomly because of the order in
which dynamic objects had their collision-handling mapped over. This
commit adds some state to a player that indicates that a player has
already teleported once, so they don't teleport a second time or fail to
teleport.