Actually tell you if the server is running an incompatible version
There were a bunch of cases in HandleConnect for rejecting a client running a different version of the game. The problem is that clients just don't even try connecting to a server with an incompatible version. So I moved those cases to the client side.
Also did a bunch of refactoring, like turning refusereason
into an enum.