fix to piece removal logic

properly assigns the old position to nil
perform_jump no longer allows invalid jump locations for one side