update network functionality; add rematches

Server delegates games to a NetworkGameManager so that it can
(eventually) run multiple games. NetworkGameManager will ask Clients if
they want to rematch. A rematch will start with the opposite player
going first.

Network player can send and recieve arbitrary messages between the
server and clients.

Client has basic functionality to accept or reject rematches.

ConnectNProtocol updated to support rematches.