Board Syncing, Client Prediction, User Input, and Refactoring

Client Boards are automatically synced to the Server Board. If client
gets out of sync, the update ticks re-syncs the client.

Players can now send game input events to the server to perform user
actions such as dice rolling. These actions are predicted on the client,
and re-synced through the auto update ticks.

New PlayerMode class to easily switch between single player and
multiplayer modes.
Updated Readme