Added functionality to the board.
Board methods now handle bad input.
Added interfaces for players and user interfaces.
Added javadoc where it was missing.