Some minor refactoring

Rewrote the MoveKing method, added a new ExecuteCommand. Now the pawns
are initialized in a Dictionary<char, ChessPiece>. Various other
improvements. There is a new bug: the king can't win (king.X == 0 won't
do anything) - will fix that bug later today. Various other
improvements.