restructuring of hasMoved field

- is now a field of GamePiece
- modified by GameBoard::move
- only used by king, rook, and pawn
- should fix pawn move bug