refactored check_board_horizontally/vertically

made the code more readable at the slight expense of performance
slight documentation change to Node
added enumeration for player1, player2, nobody

previously I was just using hard-coded values of 0, 1, 2
Now I'm using a proper Player enumeration class