update AlphaBetaPlayer

Traverses the game tree in a random order. This generally improves
performance in cases where traversing the left side offers little
pruning (e.g. when the best move is on the right). Conversely, it may
decrease performance in cases where the left side provides a lot of
pruning.
update Board

Add Javadocs.
Minor refactoring.
Update constructor to ensure that win condition is at least 2.
add Javadocs; minor changes