Add propper client initialization

Fixes following issues:
-Client not sending TOSERVER_RECEIVED_MEDIA if it doesn't have all media right from start
-Joining player standing in world long before player can move
-Data sent to clients prior clients are ready to receive

Additional improvements
-max receive buffer is now set to IPv6 minimum UDP size of 1500 bytes (only buffer not packet size)
-conlock is split to multiple small locks
-remove lots of duplicated code in server.cpp

Design decisions
-client list handling moved from server to separate class
-Added remote client state
-Player initialization data isn't sent uppon reception of INIT2 but after TOSERVER_RECEIVED_MEDIA (this will result in old clients failing to join on login without having completed download of all media in a previous session. Is this a big problem?)