Improve Board.parsePosition to handle multiple moves

Now the move history parsing can handle more than one move.
The logic that had to be modified centered around how the player-
to-move value was calculated and maintained. Adjusted BoardStatus
to make the new style possible.

Also adjusted the protocol format.
Now the following are valid encodings for a board position:

1) CurrentPosition
2) CurrentPosition PlayerToMove
3) CurrentPosition InitialPosition MoveHistory

For (1), the player to move is set to the default value of white.
For (3), the player to move value is calculated from the move
history that follows the initial position.