Refactor BoardCoordinate, add Player class, add Board.winnerIs()

These commits are too big. I'm working on it.

+ Refactor BoardCoordinate: constructor now accepts a natural
  language string ("top left", "middle center"), and phrase to
  string logic is handled by BoardCoordinate in place of Board.
  Refactor Board methods to use BoardCoordinate globally.
+ Add Player class with basic move methods.
+ Add Board.winnerIs() method: returns winning player, not just
  boolean presence of a win on the board.