update undo

- captured pieces return to board
- hasmoved is back to false after an undo
if the previous move changed that member.