Split Client into PlayerClient and SpectatorClient.
Moved more methods to GameHandler in order to empower the SpectatorHandler.
Renamed "leave" message to "disconnect".
Added disconnect reasons.
Move player joining handler to separate method.
Ensure player disconnects due to heart beat timeouts are handled at most once.
Merge pull request #16 from tgoossens/spectator

Distinguish between playing and spectating a game. Fixes #10.