Handle signals in server, refactor joining

Add protocol version to handshake (WIP need to do client), use Player
class to better store player information
Send protocol version in client

Fix display bug in server
Slight refactoring of names. Networking borked
Send boost::uuids in client packets
Simplify (dis)connect packets. For sanity
Refactor join code
Show dictionary load error in-game

But it doesn't work for the first game...
Fix menu control not being properly cleared

Opening the menu adds the menu's input reader before the game input
reader, which blocks the game controls from properly clearing the menu
command's state when the key is released!
mv SolitaireEntry SingleplayerEntry. Consistency
Add CRITICAL messages. Refactor message code

CRITICAL are permanent. MessageQ can now delegate different durations.
Remove Game#is_started

I think it is easier to always start the game and just display a
CRITICAL message