Remove unused import
Almost working sync'd multiplayer
First draft

Many files (inc. GameInput & subclasses):
- Renamed GameInput#gatherInput() to tick()

CatacombSnatch:
- Added getLocalInput()
- Changed game loop to always call logic.tick()
- Moved input gather into menu/logic tick()
- Updated startGame() to support Sync'd multiplayer

GameInformation:
- Added NetworkInformation to hold Sockets etc for
  next network game

GameMenus:
- Now calls GameInput#tick()

LogicalInputs:
- New method getAll() returns all logical inputs

LocalGameLogic:
- Made many fields protected instead of private
- New methods addPlayerInNextSlot() and addOrUpdatePlayer()
  These ensure that a player is created (or updated) from
  the provided PlayerInformation and properly added to the
  level and the player / view list.

- Constructor now uses addPlayerInNextSlot() to create the
  player (in a basic local game, there is only one)

- Added getStartPosition() and getPlayerFacing() to provide
  lookups against player id (for multiplayer). TODO These
  should probably be defined or derived from the map (the
  facing value can be derived if we assume characters should
  face toward the middle of the map)

- Updated tick(), since it is called even when menus are up,
  so it bails if the game ticks should be paused.

SyncServerGameLogic:
- Changed to extend LocalGameLogic
- Overrides constructor (does not call super())
- Currently hard codes local player (to slot 0)
- New method unpause() sends an UnpausePacket to the network
  to ensure the other client is unpaused

- Added Packet handler for server packets
- Added NetworkCommand handler
- Removed a bunch of methods no longer required by GameLogic
  interface

- Implemented tick() (calls super.tick())

- TODO Chat is disabled

SimpleGameView:
- (Re-)added latency rendering for sync'd network games

DifficultySelect:
- Added support for starting a sync'd network game

GuiError:
- Changed button to be a BackButton (so it actually goes back!)

HostingWaitMenu:
- Now handles waiting for a connection for a sync'd network game
- Also starts the game when the connection is made

JoinGameMenu:
- (Re-)added ip address input
- Now connects to the specified ip as a sync'd network game
- Also starts the game when the connection is made

PauseMenu:
- Pressing "Resume" now calls unpause() on the SyncServerGameLogic,
  if required

TitleMenu:
- Pressing "Start" now sets up the GameInformation for a single
  player game

- Pressing "Host" now sets up the GameInformation for hosting
  a sync'd network game

- Pressing "Join" now sets up the GameInformation for joining
  a sync'd network game as a client

LevelInformation:
- Added getPath() (replaces the old getUniversalPath())

LevelList:
- Now hard-codes LevelInformation for vanilla levels (not really
  needed in the end)

- New method getForPath() (replaces a method in LevelInformation)

CharacterCommand:
- Changed to use GameCharacter rather than IDs
- Now sends GameCharacter name over the wire, instead of ID (makes
  it easier to convert back to a GameCharacter)

StartGamePacket:
- Now sends GameCharacter name over the wire, instead of ID (makes
  it easier to convert back to a GameCharacter)

StartGamePacketCustom:
- Now reimplements less of its superclass (StartGamePacket) and
  simply reuses it instead

TurnPacket:
- Removed an unnecessary method definition

----
TODO Console is disabled
TODO Multiplayer sometimes de-syncs if the client uses keys/mouse
TODO Players share fog of war
TODO Check there's no other missing code lost in the refactor

NOTE: Changes to networking make this incompatible with previous
      versions
Add sync_check functionality
Based on code in sync_check branch

NOT a git merge of the sync_check branch,
but an application of the changes
as a patch (makes a new commit).