Use lowercase for black pieces in print_board()
Fix a bug in legal_move()

There were cases where, in the attempt to check for intervening pieces,
we would never hit the end square, and would end up outside the board.
Add error messages to parse_tokens.
Fix game termination marker parsing for "*".