Completion: rework move_page()

The previous code was hard to understand, because it was generic. A less
generic code is easier to understand, and it appears that it is shorter.