Add checks for valid moves
Update specs to reflect refactored classes
Add spec helper with #flatten method
Refactor empty position calculation
Add winning and draw tests