Instances of this class record move operations which took place on this root. They form a singly linked list where each move instance points to the next one. The last entry in the list is always an empty slot to be filled in by calling {@code setMove()}. This fills the slot with the source and destination of the move and links this move to the next one which will be the new empty slot.
Moves can be applied to {@code MutableTree} instances by calling {@code apply()}, which will execute all moves in the list on the passed tree instance