moved Move to its own file again, separated game logic from the Board, broke down some large methods
added test coverage for move class