Maintain a SocketSet for all the client sockets

This adds "client states". When a client is initially created it enters the
PENDING state. Once the protocol version check is performed (successfully)
it enters the CONNECTED state. On disconnect it enters DISCONNECTED; this
is where any finalisation operations can occur.
shits broke yo
the little hollinski that could
Merge branch 'master' of https://github.com/TeamLe-Shop/zordzman-plus-plus

Conflicts:
	server/lib/Client.hpp
	server/lib/Server.cpp
	server/lib/Server.hpp
	server/lib/util.cpp
	server/main.cpp